interface Props {
    name?: string;
    selector?: string | (() => Element);
    wrapper?: boolean;
    data: {
        src: any[] | ((query: any) => any[]) | ((query: any) => Promise<any[]>) | null;
        keys?: any[];
        cache?: boolean;
        filter?: (list: any) => any[];
    };
    trigger?: (query: any) => Boolean;
    query?: (input: any) => string;
    placeHolder?: string;
    threshold?: number;
    debounce?: number;
    searchEngine?: 'strict' | 'loose' | ((query: any, record: any) => string);
    diacritics?: boolean;
    resultsList?: {
        tag?: string;
        id?: string;
        class?: string;
        destination?: string | (() => Element);
        position?: string;
        element?: (list: any, data: any) => void;
        maxResults?: number;
        tabSelect?: boolean;
        noResults?: boolean;
    };
    resultItem?: {
        tag?: string;
        id?: string;
        class?: string;
        element?: (item: any, data: any) => void;
        highlight: boolean;
        selected?: string;
    };
    submit?: boolean;
    events?: {
        input?: any;
        list?: any;
    };
}
type ClassProps = Props & {
    name: string;
    data: {
        store?: any[] | undefined;
    };
    resultsList: {
        tag: string;
        id: string;
        destination: string | (() => Element);
    };
    resultItem: {
        tag: string;
    };
};
declare class AutoComplete {
    id: any;
    isOpen: boolean;
    props: ClassProps;
    wrapper?: HTMLElement;
    input: HTMLInputElement | HTMLTextAreaElement;
    list: any;
    cursor: any;
    feedback: any;
    constructor(props: Props);
    init(): Promise<void>;
    unInit(): void;
    configure(): void;
    eventEmitter(name: any): void;
    search(query: any, record: any, options: any): any;
    getData(query?: any): Promise<void>;
    findMatches(query: string): void;
    setFeedback(index: any): void;
    render(): void;
    open(): void;
    close(): void;
    goTo(index: any): void;
    next(): void;
    previous(): void;
    select(event: any, index?: any): void;
    click(event: any): void;
    navigate(event: any): void;
    start(q?: string): Promise<void>;
    eventsManager(events: any, callback: (element: string, event: string) => void): void;
    addEvents(): void;
    removeEvents(): void;
}
export { AutoComplete };
