import { ControlValueAccessor } from '@angular/forms';
import * as i0 from "@angular/core";
export interface SelectOption {
    value: string;
    label: string;
    icon?: string;
    disabled?: boolean;
}
export interface SelectOptionGroup {
    label?: string;
    options: SelectOption[];
}
export type SelectSize = 'sm' | 'md' | 'lg';
export type SelectVariant = 'select' | 'multiselect';
export declare class SelectComponent implements ControlValueAccessor {
    options: import("@angular/core").InputSignal<SelectOptionGroup[]>;
    variant: import("@angular/core").InputSignal<SelectVariant>;
    size: import("@angular/core").InputSignal<SelectSize>;
    placeholder: import("@angular/core").InputSignal<string>;
    label: import("@angular/core").InputSignal<string>;
    helperText: import("@angular/core").InputSignal<string>;
    isError: import("@angular/core").InputSignal<boolean>;
    errorText: import("@angular/core").InputSignal<string>;
    disabled: import("@angular/core").InputSignal<boolean>;
    required: import("@angular/core").InputSignal<boolean>;
    fullWidth: import("@angular/core").InputSignal<boolean>;
    isLoading: import("@angular/core").InputSignal<boolean>;
    value: import("@angular/core").InputSignal<string | string[]>;
    searchBarEnabled: import("@angular/core").InputSignal<boolean>;
    searchPlaceholder: import("@angular/core").InputSignal<string>;
    align: import("@angular/core").InputSignal<"left" | "right" | "center">;
    direction: import("@angular/core").InputSignal<"up" | "down">;
    appendToBody: import("@angular/core").InputSignal<boolean>;
    autoFocus: import("@angular/core").InputSignal<boolean>;
    safeAreaInsetBottom: import("@angular/core").InputSignal<boolean>;
    cancelButtonText: import("@angular/core").InputSignal<string>;
    acceptButtonText: import("@angular/core").InputSignal<string>;
    valueChange: import("@angular/core").OutputEmitterRef<string | string[]>;
    private _selectedOptions;
    private _filteredOptions;
    private _searchText;
    selectedOptions: import("@angular/core").Signal<SelectOption[]>;
    filteredOptions: import("@angular/core").Signal<SelectOptionGroup[]>;
    searchText: import("@angular/core").Signal<string>;
    hasSelection: import("@angular/core").Signal<boolean>;
    isMultiSelect: import("@angular/core").Signal<boolean>;
    showSearchBar: import("@angular/core").Signal<boolean>;
    hiddenTagsCount: import("@angular/core").Signal<number>;
    visibleTags: import("@angular/core").Signal<SelectOption[]>;
    private calculateVisibleTagsCount;
    selectedOption: import("@angular/core").Signal<SelectOption>;
    displayText: import("@angular/core").Signal<string>;
    isSelected(option: SelectOption): boolean;
    private elementRef;
    private onChange;
    private onTouched;
    constructor();
    writeValue(value: string | string[] | null): void;
    registerOnChange(fn: (value: string | string[] | null) => void): void;
    registerOnTouched(fn: () => void): void;
    setDisabledState(_isDisabled: boolean): void;
    onDropdownSearchChanged(searchText: string): void;
    onDropdownValueChange(value: string | string[] | null): void;
    getSelectedValues(): string | string[];
    selectOption(option: SelectOption): void;
    onCheckboxChange(option: SelectOption, checked: boolean): void;
    removeOption(option: SelectOption): void;
    private toggleMultiSelectOption;
    private selectSingleOption;
    private filterOptions;
    private updateSelectedOptionsFromValue;
    private findOptionByValue;
    private emitValueChange;
    static ɵfac: i0.ɵɵFactoryDeclaration<SelectComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SelectComponent, "lib-select", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "helperText": { "alias": "helperText"; "required": false; "isSignal": true; }; "isError": { "alias": "isError"; "required": false; "isSignal": true; }; "errorText": { "alias": "errorText"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "fullWidth": { "alias": "fullWidth"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "searchBarEnabled": { "alias": "searchBarEnabled"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "direction": { "alias": "direction"; "required": false; "isSignal": true; }; "appendToBody": { "alias": "appendToBody"; "required": false; "isSignal": true; }; "autoFocus": { "alias": "autoFocus"; "required": false; "isSignal": true; }; "safeAreaInsetBottom": { "alias": "safeAreaInsetBottom"; "required": false; "isSignal": true; }; "cancelButtonText": { "alias": "cancelButtonText"; "required": false; "isSignal": true; }; "acceptButtonText": { "alias": "acceptButtonText"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
}
