import { SelectionModel } from '@angular/cdk/collections';
import { ElementRef, OnChanges, OnInit, SimpleChanges } from '@angular/core';
import { ControlValueAccessor, FormControl, ValidatorFn } from '@angular/forms';
import { MatCheckboxChange } from '@angular/material/checkbox';
import { CanColor, CanDisable, CanDisableRipple } from '@angular/material/core';
import { MatFormFieldAppearance } from '@angular/material/form-field';
import { DisplayDensity, ISelectOption } from '@metad/ocap-angular/core';
import { DisplayBehaviour } from '@metad/ocap-core';
import * as i0 from "@angular/core";
declare const NgmMatSelectComponent_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 NgmMatSelectComponent extends NgmMatSelectComponent_base implements CanDisable, CanColor, CanDisableRipple, OnInit, OnChanges, ControlValueAccessor {
    #private;
    _isSelectComponent: boolean;
    appearance: MatFormFieldAppearance;
    displayBehaviour: DisplayBehaviour | string;
    displayDensity: DisplayDensity | string;
    label: string;
    placeholder: string;
    validators: ValidatorFn | ValidatorFn[] | null;
    get selectOptions(): ISelectOption[];
    set selectOptions(value: ISelectOption[]);
    private _selectOptions$;
    get multiple(): boolean;
    set multiple(value: boolean | string);
    private _multiple;
    get virtualScroll(): boolean | string;
    set virtualScroll(value: boolean | string);
    private _virtualScroll;
    loading: boolean;
    virtualScrollItemSize: number;
    formControl: FormControl<string | string[] | ISelectOption<unknown>>;
    selection: SelectionModel<string>;
    get highlight(): string;
    get isNotInitial(): string | number | ISelectOption<unknown>;
    readonly options$: import("rxjs").Observable<ISelectOption<unknown>[]>;
    onChange: (input: any) => void;
    onTouched: () => void;
    constructor(_elementRef: ElementRef);
    ngOnInit(): void;
    ngOnChanges({ displayDensity, validators }: SimpleChanges): void;
    writeValue(obj: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState?(isDisabled: boolean): void;
    trackBy(i: number, item: ISelectOption): unknown;
    displayWith(value: any): any;
    private _updateLabel;
    isSelect(option: ISelectOption): boolean;
    onSelect(event: MatCheckboxChange, option: ISelectOption): void;
    clear(): void;
    getErrorMessage(): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<NgmMatSelectComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NgmMatSelectComponent, "ngm-mat-select", never, { "disabled": { "alias": "disabled"; "required": false; }; "disableRipple": { "alias": "disableRipple"; "required": false; }; "color": { "alias": "color"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "displayBehaviour": { "alias": "displayBehaviour"; "required": false; }; "displayDensity": { "alias": "displayDensity"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "validators": { "alias": "validators"; "required": false; }; "selectOptions": { "alias": "selectOptions"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; }, {}, never, never, true, never>;
}
export {};
