import { TuiControl } from '@taiga-ui/cdk/classes';
import type { TuiStringMatcher } from '@taiga-ui/cdk/types';
import type { TuiTextfieldAccessor } from '@taiga-ui/core/components/textfield';
import * as i0 from "@angular/core";
import * as i1 from "@taiga-ui/core/components/textfield";
export declare class TuiComboBox<T> extends TuiControl<T | string | null> implements TuiTextfieldAccessor<T> {
    private readonly host;
    private readonly textfield;
    private readonly open;
    private readonly dropdownEnabled;
    private readonly dropdown;
    private readonly handlers;
    private readonly matcher;
    private readonly strict;
    private readonly datalist;
    private readonly options;
    protected readonly nonStrictControlEffect: import("@angular/core").EffectRef;
    protected readonly matchingEffect: import("@angular/core").EffectRef;
    protected readonly newValueEffect: import("@angular/core").EffectRef;
    protected readonly blurEffect: import("@angular/core").EffectRef;
    set strictSetter(x: boolean);
    set matcherSetter(x: TuiStringMatcher<T> | null);
    setValue(value: T | null): void;
    writeValue(value: T | string | null): void;
    protected toggleDropdown(open?: boolean): void;
    protected keydownEnter(event: KeyboardEvent): void;
    private stringify;
    static ɵfac: i0.ɵɵFactoryDeclaration<TuiComboBox<any>, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<TuiComboBox<any>, "input[tuiComboBox]", never, { "strictSetter": { "alias": "strict"; "required": false; }; "matcherSetter": { "alias": "matcher"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.TuiWithTextfield; inputs: {}; outputs: {}; }]>;
}
