import type { ReactNode } from 'react';

export type QueryFilterField = {
  value: string;
  label: ReactNode;
  placeholder?: string;
};

export type QueryFilterOperator = {
  value: string;
  label: ReactNode;
};

export type QueryFilterCondition = {
  id: string;
  field: string;
  operator: string;
  value: string;
};

export type QueryFilterPreset = {
  value: string;
  label: ReactNode;
  conditions: QueryFilterCondition[];
};

export type QueryFilterBuilderProps = {
  fields: QueryFilterField[];
  operators: QueryFilterOperator[];
  value: QueryFilterCondition[];
  onChange: (value: QueryFilterCondition[]) => void;
  presets?: QueryFilterPreset[];
  compact?: boolean;
  disabled?: boolean;
  addLabel?: ReactNode;
  emptyText?: ReactNode;
};
