import { ControlValueAccessor, FormControl, FormGroup } from '@angular/forms';
import * as i0 from "@angular/core";
export type ComboboxVariantProps = 'primary' | 'secondary' | 'success' | 'error' | 'warning' | null | undefined;
export type ComboboxShapeProps = 'round-none' | 'round-sm' | 'round-md' | 'round-lg' | null | undefined;
export type ComboboxSizeProps = 'sm' | 'md' | 'lg' | null | undefined;
export type ComboboxProps = {
    variant?: ComboboxVariantProps;
    shape?: ComboboxShapeProps;
    size?: ComboboxSizeProps;
};
/**
 * Search input component
 * A search input component that allows the user to search for an option from a list of options
 * This component was implemented using the ng-select library
 * Docs: https://github.com/ng-select/ng-select
 */
export declare class ComboboxComponent implements ControlValueAccessor {
    variant: import("@angular/core").InputSignal<ComboboxVariantProps>;
    shape: import("@angular/core").InputSignal<ComboboxShapeProps>;
    size: import("@angular/core").InputSignal<ComboboxSizeProps>;
    classes: import("@angular/core").InputSignal<string>;
    name: import("@angular/core").InputSignal<string | null>;
    label: import("@angular/core").InputSignal<string>;
    value: import("@angular/core").ModelSignal<unknown>;
    options: import("@angular/core").InputSignal<any[]>;
    emptyOptionText: import("@angular/core").InputSignal<string | undefined>;
    loading: import("@angular/core").InputSignal<boolean>;
    search: string;
    trackBy: import("@angular/core").InputSignal<string>;
    key: import("@angular/core").InputSignal<string>;
    parentForm: import("@angular/core").InputSignal<FormGroup<any> | null>;
    formControlName: import("@angular/core").InputSignal<string>;
    get formField(): FormControl | null;
    private onControlChange;
    private onControlTouch;
    disabled: import("@angular/core").ModelSignal<boolean>;
    writeValue(obj: any): void;
    registerOnChange(fn: any): void;
    registerOnTouched(fn: any): void;
    setDisabledState?(isDisabled: boolean): void;
    valueUpdated: import("@angular/core").OutputEmitterRef<any>;
    handleSelect(): void;
    searchQuery: import("@angular/core").OutputEmitterRef<string>;
    handleSearch(search: string): void;
    handleBlur(): void;
    simpleOption: import("@angular/core").Signal<boolean>;
    get componentClass(): string;
    get errorClass(): string;
    get successClass(): string;
    get validationClass(): string;
    get isValidTrackAndKey(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<ComboboxComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ComboboxComponent, "st-combobox", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "classes": { "alias": "classes"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "emptyOptionText": { "alias": "emptyOptionText"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "key": { "alias": "key"; "required": false; "isSignal": true; }; "parentForm": { "alias": "parentForm"; "required": false; "isSignal": true; }; "formControlName": { "alias": "formControlName"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "disabled": "disabledChange"; "valueUpdated": "valueUpdated"; "searchQuery": "searchQuery"; }, never, ["*"], true, never>;
}
