import { TemplateResult } from 'lit';
import NileElement from '../internal/nile-element';
import type { CSSResultGroup, PropertyValues } from 'lit';
import { NileDropdown } from '../nile-dropdown';
import { NileInput } from '../nile-input';
export declare class NileAutoComplete extends NileElement {
    static styles: CSSResultGroup;
    private visibilityManager?;
    dropdownElement: NileDropdown;
    inputElement: NileInput;
    disabled: boolean;
    isDropdownOpen: boolean;
    /**
     * When true, the dropdown menu will be appended to the document body instead of the parent container.
     * This is useful when the parent has overflow: hidden, clip-path, or transform applied.
     */
    portal: boolean;
    private readonly portalManager;
    enableVirtualScroll: boolean;
    openOnFocus: boolean;
    value: string;
    placeholder: string;
    noBorder: boolean;
    noOutline: boolean;
    noPadding: boolean;
    loading: boolean;
    filterFunction: (item: string, searchedValue: string) => boolean;
    renderItemFunction: (item: any) => string;
    allMenuItems: any;
    enableVisibilityEffect: boolean;
    enableTabClose: boolean;
    noDropdownClose: boolean;
    label: string;
    menuItems: any;
    protected firstUpdated(_changed: PropertyValues): Promise<void>;
    connectedCallback(): void;
    disconnectedCallback(): void;
    protected updated(changedProperties: PropertyValues): void;
    handlePortalChange(): void;
    private handleDropdownOpenChange;
    private addOpenListeners;
    private removeOpenListeners;
    private handleDocumentFocusIn;
    private handleDocumentMouseDown;
    private handleWindowResize;
    private handleWindowScroll;
    render(): TemplateResult;
    getVirtualizedContent(): TemplateResult;
    getContent(): TemplateResult;
    getItemRenderFunction(item: any): TemplateResult;
    handleSelect(event: CustomEvent): void;
    private setVirtualMenuWidth;
    private handleSearch;
    handleFocus(): void;
    private handleClick;
    applyFilter<T>(list: T[], filterFn: (item: T, searchValue?: string) => boolean): T[];
}
export default NileAutoComplete;
declare global {
    interface HTMLElementTagNameMap {
        'nile-auto-complete': NileAutoComplete;
    }
}
