import { SelectionModel } from '@angular/cdk/collections';
import { ElementRef, TemplateRef } from '@angular/core';
import { ControlValueAccessor, FormControl, ValidatorFn } from '@angular/forms';
import { ISelectOption } from '@metad/ocap-angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@metad/ocap-angular/core";
export declare class NgmSelectComponent implements ControlValueAccessor {
    readonly displayBehaviour: import("@angular/core").InputSignal<string>;
    readonly displayDensity: import("@angular/core").InputSignal<string>;
    /**
     * The name of key field of option
    */
    readonly valueKey: import("@angular/core").InputSignal<string>;
    readonly label: import("@angular/core").InputSignal<string>;
    readonly placeholder: import("@angular/core").InputSignal<string>;
    readonly searchable: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
    readonly virtualScroll: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
    readonly validators: import("@angular/core").InputSignal<ValidatorFn | ValidatorFn[]>;
    readonly multiple: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
    readonly selectOptions: import("@angular/core").InputSignal<ISelectOption<unknown>[]>;
    readonly panelWidth: import("@angular/core").InputSignal<string | number>;
    readonly allowInput: import("@angular/core").InputSignalWithTransform<boolean, string | boolean>;
    _explicitContent: TemplateRef<any>;
    readonly searInput: import("@angular/core").Signal<ElementRef<any>>;
    formControl: FormControl<string>;
    readonly value: import("@angular/core").WritableSignal<string | number>;
    selection: SelectionModel<string>;
    searchControl: FormControl<string>;
    readonly highlight: import("@angular/core").Signal<string>;
    readonly options$: import("@angular/core").Signal<ISelectOption<unknown>[]>;
    selectTrigger: import("@angular/core").Signal<ISelectOption<unknown>>;
    readonly autoInput: import("@angular/core").WritableSignal<any>;
    readonly inputDirty: import("@angular/core").WritableSignal<boolean>;
    onChange: (input: any) => void;
    onTouched: () => void;
    private valueSub;
    private selectionSub;
    constructor();
    writeValue(obj: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState?(isDisabled: boolean): void;
    trackByValue(index: number, item: any): any;
    displayWith(option: ISelectOption): string;
    onAutoInput(event: any): void;
    onOptionSelected(event: any): void;
    onKeydown(event: KeyboardEvent): void;
    onBlur(event: FocusEvent): void;
    clear(): void;
    get isDisabled(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgmSelectComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgmSelectComponent, "ngm-select", never, { "displayBehaviour": { "alias": "displayBehaviour"; "required": false; "isSignal": true; }; "displayDensity": { "alias": "displayDensity"; "required": false; "isSignal": true; }; "valueKey": { "alias": "valueKey"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; "validators": { "alias": "validators"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "selectOptions": { "alias": "selectOptions"; "required": false; "isSignal": true; }; "panelWidth": { "alias": "panelWidth"; "required": false; "isSignal": true; }; "allowInput": { "alias": "allowInput"; "required": false; "isSignal": true; }; }, {}, ["_explicitContent"], ["[ngmError]", "[ngmSuffix]"], true, [{ directive: typeof i1.NgmDensityDirective; inputs: { "small": "small"; "large": "large"; }; outputs: {}; }]>;
}
