import { ChangeValueOptions, Filter, FilterEvents } from '../../model';
export interface StringFilterStateParams {
    readonly name?: string;
    readonly persistent?: boolean;
    /**
     * The value to initialize the filter with (Optional)
     * @external
     */
    readonly initialValue?: string;
    /**
     * The value to set the value to, when clearing the filter (Optional)
     * @external
     */
    defaultValue: string;
    readonly matches?: (item: string, value: string) => boolean;
    readonly equals?: (item1: string, item2: string) => boolean;
}
export declare class StringFilterState implements Filter<string> {
    name: string;
    persistent: boolean | undefined;
    defaultValue: string;
    readonly itemKey: (item: string) => string;
    readonly itemName: (item: string) => string;
    readonly matches: (item: string, value: string) => boolean;
    readonly equals?: (item1: string, item2: string) => boolean;
    _value: string;
    readonly events: FilterEvents;
    constructor(params: StringFilterStateParams);
    get value(): string;
    _toArray: (value: string) => string[];
    get toArray(): string[];
    get isEmpty(): boolean;
    get size(): 0 | 1;
    get toQueryString(): string;
    applyFromQueryString(str: string): void;
    encode(value: string): string;
    decode(raw: unknown): string;
    setValue(value: string, { emitEvents, ...options }?: ChangeValueOptions): void;
    changeValue(value: string, { emitEvents, ...options }?: ChangeValueOptions): void;
    refresh(value: string, options?: ChangeValueOptions): void;
    scheduleRefresh(value: string): void;
    reset(options?: ChangeValueOptions): void;
    remove(_: string[], options?: ChangeValueOptions): void;
    hasDiff(item: string): boolean;
    clone(params: Partial<StringFilterStateParams>): StringFilterState;
}
export declare const stringFilter: (params?: Partial<StringFilterStateParams>) => StringFilterState;
//# sourceMappingURL=StringFilterState.d.ts.map