import { AutoCompleteTextSearchMode } from '../Types/AutoCompleteTextSearchMode';
import { ControllerBase, type ControllerHost } from './Abstracts/ControllerBase';
/**
 * Represents the `AutoCompleteFilterCallback` type.
 *
 * @public
 */
export type AutoCompleteFilterCallback<T = unknown> = ((items: Array<T>) => void) | null;
/**
 * Represents the `IAutoCompleteControllerConfig` interface.
 *
 * @public
 */
export interface IAutoCompleteControllerConfig {
    filterCallback?: (items: Array<unknown>) => void;
    filterBehavior?: 'empty' | 'full';
    selectCallback?: (item: unknown) => void;
}
/**
 * Represents the `AutoCompleteController` class.
 *
 * @public
 */
export declare class AutoCompleteController<T extends Record<string, unknown>> extends ControllerBase {
    private readonly _filterCallback;
    private readonly _selectCallback;
    private readonly _filterBehavior;
    private _searchText;
    private _filteredItems;
    /**
     * Constructs a new instance of the `AutoCompleteController` class.
     *
     * @public
     */
    constructor(host: ControllerHost, config?: IAutoCompleteControllerConfig);
    /**
     * @public
     * @override
     */
    hostUpdated(): void;
    updateSearchText(items: Array<T>, text: string, minimumPrefixLength: number, mode: AutoCompleteTextSearchMode, displayMemberPath: string): void;
    selectItem(item: T): void;
    get filteredItems(): Array<T>;
    getDisplayValue(item: T, displayMemberPath: string): string;
    private filterItems;
}
//# sourceMappingURL=AutoCompleteController.d.ts.map