import { AfterViewInit, OnDestroy, OnInit, TemplateRef } from '@angular/core';
import { FormControl, ValidatorFn } from '@angular/forms';
import { MatFormFieldAppearance } from '@angular/material/form-field';
import { MatInput } from '@angular/material/input';
import { MatSelect, MatSelectChange } from '@angular/material/select';
import { SdItemDefDefDirective, SdViewDefDirective } from '@sd-angular/core/forms/directives';
import { SdCustomValidator, SdFormControl, SdSearch, SdSelectionData } from '@sd-angular/core/forms/models';
import { SdSize } from '@sd-angular/core/utilities/models';
import * as i0 from "@angular/core";
export declare class SdSelect implements OnInit, AfterViewInit, OnDestroy {
    #private;
    id: string;
    matInputRef: import("@angular/core").Signal<MatInput | undefined>;
    selectRef: import("@angular/core").Signal<MatSelect | undefined>;
    sdLabelTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
    sdValueTemplate: import("@angular/core").Signal<TemplateRef<any> | undefined>;
    itemDef: import("@angular/core").Signal<SdItemDefDefDirective | undefined>;
    sdViewDef: import("@angular/core").Signal<SdViewDefDirective | undefined>;
    private ref;
    private formConfig;
    autoIdInput: import("@angular/core").InputSignal<string | null | undefined>;
    autoId: import("@angular/core").Signal<string | undefined>;
    name: import("@angular/core").InputSignal<string>;
    size: import("@angular/core").InputSignal<SdSize>;
    form: import("@angular/core").InputSignal<any>;
    label: import("@angular/core").InputSignal<string | undefined>;
    helperText: import("@angular/core").InputSignal<string | undefined>;
    placeholder: import("@angular/core").InputSignal<string | undefined>;
    valueField: import("@angular/core").InputSignal<string>;
    displayField: import("@angular/core").InputSignal<string>;
    disabledField: import("@angular/core").InputSignal<string>;
    cacheChecksum: import("@angular/core").InputSignal<any>;
    limit: import("@angular/core").InputSignal<number>;
    hyperlink: import("@angular/core").InputSignal<string | null | undefined>;
    hideInlineError: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
    required: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
    disabled: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
    viewed: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
    multiple: import("@angular/core").InputSignalWithTransform<boolean, unknown>;
    validator: import("@angular/core").InputSignal<SdCustomValidator | undefined>;
    inlineError: import("@angular/core").InputSignal<string | undefined>;
    appearanceInput: import("@angular/core").InputSignal<MatFormFieldAppearance | undefined>;
    appearance: import("@angular/core").Signal<MatFormFieldAppearance>;
    items: import("@angular/core").InputSignal<any[] | SdSearch | null | undefined>;
    valueModel: import("@angular/core").ModelSignal<string | number | boolean | (string | number)[] | null | undefined>;
    sdChange: import("@angular/core").OutputEmitterRef<any>;
    sdSelection: import("@angular/core").OutputEmitterRef<SdSelectionData<any>>;
    formControl: SdFormControl;
    inputControl: FormControl<string | null>;
    loading: import("@angular/core").WritableSignal<boolean>;
    isFocused: boolean;
    allSelected: boolean;
    filteredItems: import("@angular/core").WritableSignal<any[]>;
    selectedItems: import("@angular/core").WritableSignal<any[]>;
    display: import("@angular/core").WritableSignal<string>;
    normalizedValue: import("@angular/core").Signal<string | number | boolean | (string | number | boolean)[] | null | undefined>;
    filtered: import("@angular/core").Signal<boolean>;
    delayTime: import("@angular/core").Signal<0 | 500>;
    tooltip: import("@angular/core").Signal<string>;
    constructor();
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    customInlineErrorValidator(): ValidatorFn;
    onSelectionChange: (change: MatSelectChange) => void;
    reValidate: () => void;
    clear: ($event?: any) => void;
    onClick: () => void;
    focus: () => void;
    onOpenedChange: (isOpened: boolean) => void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SdSelect, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SdSelect, "sd-select", never, { "autoIdInput": { "alias": "autoId"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "valueField": { "alias": "valueField"; "required": true; "isSignal": true; }; "displayField": { "alias": "displayField"; "required": true; "isSignal": true; }; "disabledField": { "alias": "disabledField"; "required": false; "isSignal": true; }; "cacheChecksum": { "alias": "cacheChecksum"; "required": false; "isSignal": true; }; "limit": { "alias": "limit"; "required": false; "isSignal": true; }; "hyperlink": { "alias": "hyperlink"; "required": false; "isSignal": true; }; "hideInlineError": { "alias": "hideInlineError"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "viewed": { "alias": "viewed"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "validator": { "alias": "validator"; "required": false; "isSignal": true; }; "inlineError": { "alias": "inlineError"; "required": false; "isSignal": true; }; "appearanceInput": { "alias": "appearance"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "valueModel": { "alias": "model"; "required": false; "isSignal": true; }; }, { "valueModel": "modelChange"; "sdChange": "sdChange"; "sdSelection": "sdSelection"; }, ["sdLabelTemplate", "sdValueTemplate", "itemDef", "sdViewDef"], ["[sdLabel]"], true, never>;
}
