import type { UmbPickerSearchManagerConfig } from './types.js';
import { UmbPaginationManager } from '../../../utils/index.js';
import { UmbControllerBase } from '../../../../../libs/class-api/index.js';
import type { UmbSearchRequestArgs, UmbSearchResultItemModel } from '../../../search/index.js';
import type { UmbControllerHost } from '../../../../../libs/controller-api/index.js';
/**
 * A manager for searching items in a picker.
 * @exports
 * @class UmbPickerSearchManager
 * @augments {UmbControllerBase}
 * @template ResultItemType
 * @template SearchRequestArgsType
 */
export declare class UmbPickerSearchManager<ResultItemType extends UmbSearchResultItemModel = UmbSearchResultItemModel, SearchRequestArgsType extends UmbSearchRequestArgs = UmbSearchRequestArgs> extends UmbControllerBase {
    #private;
    readonly searchable: import("rxjs").Observable<boolean>;
    readonly query: import("rxjs").Observable<SearchRequestArgsType | undefined>;
    readonly executedQuery: import("rxjs").Observable<SearchRequestArgsType | undefined>;
    readonly searching: import("rxjs").Observable<boolean>;
    readonly resultItems: import("rxjs").Observable<ResultItemType[]>;
    readonly resultTotalItems: import("rxjs").Observable<number>;
    readonly pagination: UmbPaginationManager;
    constructor(host: UmbControllerHost);
    /**
     * Set the configuration for the search manager.
     * @param {UmbPickerSearchManagerConfig} config The configuration for the search manager.
     * @memberof UmbPickerSearchManager
     */
    setConfig(config: UmbPickerSearchManagerConfig): void;
    /**
     * Get the current configuration for the search manager.
     * @returns {UmbPickerSearchManagerConfig | undefined} The current configuration for the search manager.
     * @memberof UmbPickerSearchManager
     */
    getConfig(): UmbPickerSearchManagerConfig | undefined;
    /**
     * Update the current configuration for the search manager.
     * @param {Partial<UmbPickerSearchManagerConfig>} partialConfig
     * @memberof UmbPickerSearchManager
     */
    updateConfig(partialConfig: Partial<UmbPickerSearchManagerConfig>): void;
    /**
     * Returns whether items can be searched.
     * @returns {boolean} Whether items can be searched.
     * @memberof UmbPickerSearchManager
     */
    getSearchable(): boolean;
    /**
     * Sets whether items can be searched.
     * @param {boolean} value Whether items can be searched.
     * @memberof UmbPickerSearchManager
     */
    setSearchable(value: boolean): void;
    /**
     * Search for items based on the current query.
     * @memberof UmbPickerSearchManager
     */
    search(): void;
    /**
     * Clear the current search query and result items.
     * @memberof UmbPickerSearchManager
     */
    clear(): void;
    /**
     * Set the search query.
     * @param {SearchRequestArgsType} query The search query.
     * @memberof UmbPickerSearchManager
     */
    setQuery(query: SearchRequestArgsType): void;
    /**
     * Get the current search query.
     * @memberof UmbPickerSearchManager
     * @returns {SearchRequestArgsType | undefined} The current search query.
     */
    getQuery(): SearchRequestArgsType | undefined;
    /**
     * Update the current search query.
     * @param {Partial<SearchRequestArgsType>} query
     * @memberof UmbPickerSearchManager
     */
    updateQuery(query: Partial<SearchRequestArgsType>): void;
}
