import type { FC, HTMLAttributes } from 'react';
import type { ExprNode, FieldMetadata } from './types';
export interface FilterInputProps extends Omit, 'children' | 'onChange'> {
/**
* Filter-field configurations driving the autocomplete. A few names are
* **reserved** and auto-wired with design-system helpers — DS-supplied
* callbacks **override** consumer values for the reserved slots, because
* the field semantics (mask range, accepted chars, backend form) are fixed
* by DS:
*
* - `status_code` — HTTP status code field (mask suggestions, format
* validation, digit-or-X input filter, partial-input normalization).
*
* To opt out, use a different `name` and attach the factories
* (`createStatusCodeSuggestions`, …) manually.
*/
fields?: FieldMetadata[];
value?: ExprNode | null;
onChange?: (expression: ExprNode | null) => void;
placeholder?: string;
error?: boolean;
/**
* Field names whose values were rejected by the backend. Matching chips are
* rendered with a value error (red). Purely presentational: conditions and
* `onChange` output are unaffected, and the consumer is expected to render
* its own message (e.g. an alert with the backend error text) and clear the
* prop when the filter changes or the query succeeds.
*/
externalErrors?: string[];
/**
* Notified whenever the set of validation messages FilterInput renders below
* the input changes (empty array = no visible error). Lets a consumer avoid
* stacking its own message (e.g. a backend-error alert) on top of one the
* input already shows. Pass a stable (memoized) callback.
*/
onErrorsChange?: (errors: string[]) => void;
showKeyboardHint?: boolean;
}
export declare const FilterInput: FC;