import { ContentObjectTypeItem, ObjectTypeSearchQuery } from "@vertesia/common";
import { VertesiaClient, ZenoClient } from "@vertesia/client";
import { SharedState } from "@vertesia/ui/core";
interface ObjectTypeSearchResult {
    objects: ContentObjectTypeItem[];
    error?: Error;
    isLoading: boolean;
}
export declare class ObjectTypeSearch {
    client: VertesiaClient | ZenoClient;
    limit: number;
    result: SharedState<ObjectTypeSearchResult>;
    query: ObjectTypeSearchQuery;
    constructor(client: VertesiaClient | ZenoClient, limit?: number);
    get objects(): ContentObjectTypeItem[];
    get error(): Error | undefined;
    get isRunning(): boolean;
    getFilterValue(name: string): any;
    setFilterValue(name: string, value: any): void;
    reset(isLoading?: boolean): void;
    _updateRunningState(value: boolean): void;
    _search(loadMore?: boolean): Promise<boolean>;
    search(): Promise<boolean>;
    loadMore(): Promise<boolean>;
}
declare const ObjectTypeSearchContext: import("react").Context<ObjectTypeSearch | undefined>;
export declare function useSearch(): ObjectTypeSearch;
export declare function useWatchSearchResult(): {
    search: ObjectTypeSearch;
    objects: ContentObjectTypeItem[];
    error?: Error;
    isLoading: boolean;
};
export declare function useSearchCount(): number;
export { ObjectTypeSearchContext };
//# sourceMappingURL=ObjectTypeSearchContext.d.ts.map