import type { HTMLAttributes } from 'svelte/elements';
import type { FormulaSearchMode } from './index';
type SearchExampleCategory = {
label: string;
description: string;
examples: string[];
};
export type FormulaFilterToken = {
raw: string;
element: string;
operator: `include` | `exclude`;
constraint: string | null;
is_wildcard: boolean;
is_valid: boolean;
};
export type FormulaFilterParseResult = {
value: string;
normalized_value: string;
search_mode: FormulaSearchMode;
tokens: FormulaFilterToken[];
has_wildcards: boolean;
is_valid: boolean;
error_message: string | null;
};
export type FormulaFilterValidation = {
state: `valid` | `warning` | `invalid`;
message: string | null;
};
type $$ComponentProps = {
value: string;
search_mode?: FormulaSearchMode;
input_element?: HTMLInputElement | null;
show_clear_button?: boolean;
show_examples?: boolean;
show_mode_lock?: boolean;
show_chip_editor?: boolean;
normalize_exact?: boolean;
examples?: SearchExampleCategory[];
disabled?: boolean;
mode_locked?: boolean;
max_history?: number;
history_key?: string;
validate?: (value: string, search_mode: FormulaSearchMode, parsed: FormulaFilterParseResult) => FormulaFilterValidation | null;
onparse?: (parsed: FormulaFilterParseResult) => void;
on_validation?: (validation: FormulaFilterValidation) => void;
onchange?: (value: string, search_mode: FormulaSearchMode) => void;
onclear?: () => void;
} & HTMLAttributes;
declare const FormulaFilter: import("svelte").Component<$$ComponentProps, {}, "value" | "search_mode" | "input_element" | "mode_locked">;
type FormulaFilter = ReturnType;
export default FormulaFilter;