import { SelectionModel } from '@angular/cdk/collections';
import { ElementRef, TemplateRef } from '@angular/core';
import { ControlValueAccessor, FormControl, ValidatorFn } from '@angular/forms';
import { CanColor, CanDisable, CanDisableRipple } from '@angular/material/core';
import { DisplayDensity, ISelectOption } from '@metad/ocap-angular/core';
import { DisplayBehaviour } from '@metad/ocap-core';
import * as i0 from "@angular/core";
declare const NgmSelectComponent_base: import("@angular/material/core")._Constructor<CanColor> & import("@angular/material/core")._AbstractConstructor<CanColor> & import("@angular/material/core")._Constructor<CanDisable> & import("@angular/material/core")._AbstractConstructor<CanDisable> & import("@angular/material/core")._Constructor<CanDisableRipple> & import("@angular/material/core")._AbstractConstructor<CanDisableRipple> & {
    new (_elementRef: ElementRef): {
        _elementRef: ElementRef;
    };
};
export declare class NgmSelectComponent extends NgmSelectComponent_base implements CanDisable, CanColor, CanDisableRipple, ControlValueAccessor {
    displayBehaviour: DisplayBehaviour | string;
    displayDensity: DisplayDensity | string;
    /**
     * The name of key field of option
     */
    readonly valueKey: import("@angular/core").InputSignal<string>;
    label: string;
    placeholder: 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>;
    _explicitContent: TemplateRef<any>;
    formControl: FormControl<string>;
    readonly value: import("@angular/core").Signal<string>;
    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>;
    onChange: (input: any) => void;
    onTouched: () => void;
    private valueSub;
    private selectionSub;
    constructor(_elementRef: ElementRef);
    writeValue(obj: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState?(isDisabled: boolean): void;
    trackByValue(index: number, item: any): any;
    displayWith(option: any): any;
    onAutoInput(event: any): void;
    onOptionSelected(event: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgmSelectComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgmSelectComponent, "ngm-select", never, { "displayBehaviour": { "alias": "displayBehaviour"; "required": false; }; "displayDensity": { "alias": "displayDensity"; "required": false; }; "valueKey": { "alias": "valueKey"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "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; }; }, {}, ["_explicitContent"], ["[ngmError]", "[ngmSuffix]"], true, never>;
}
export {};
