import { NativeSelectOption } from '../types/native-select-option.interface'; import { NativeSelectConfig } from '../types/native-select-config.interface'; declare class NativeSelect { private selectElement; private container; private input; private dropdown; private optionsList; private config; private options; private isOpen; private searchTimer; private selectedValue; private onChangeCallback?; private onSearchCallback?; /** * Constructor for NativeSelect * @param selectElement - original select element * @param config - configuration object */ constructor(selectElement: HTMLSelectElement, config?: NativeSelectConfig); private init; private createStructure; private attachEvents; private hideOriginalSelect; private toggle; private open; private close; /** * Handle search input * @param query - search query */ private handleSearch; private showLoading; private showError; private showAllOptions; /** * Render options in dropdown * @param optionsToRender - options to render */ private renderOptions; /** * Select an option * @param option - option to select */ private selectOption; private focusFirstOption; /** * Set options for the select * @param options - array of options */ setOptions(options: NativeSelectOption[]): void; renderInitialOptions(): void; getValue(): string; /** * @param value - value to set */ setValue(value: string): void; clear(): void; disable(): void; /** * Enable the select */ enable(): void; /** * Set search callback * @param callback - search callback function */ onSearch(callback: (query: string) => Promise): void; /** * Set change callback * @param callback - change callback function */ onChange(callback: (value: string) => void): void; destroy(): void; } export { NativeSelect };