import { LitElement, ReactiveController, ReactiveControllerHost } from 'lit';
import { QueryClient, QueryObserverResult, QueryObserverOptions, QueryObserver } from '@tanstack/query-core';
import { ContextConsumer } from '@lit/context';
import { WeavyType } from '../contexts/weavy-context';
export declare class QueryController<TData = unknown> implements ReactiveController {
    host: ReactiveControllerHost;
    context?: ContextConsumer<{
        __context__: WeavyType;
    }, LitElement>;
    whenContext?: Promise<WeavyType>;
    resolveContext?: (value: WeavyType | PromiseLike<WeavyType>) => void;
    queryClient?: QueryClient;
    whenQueryClient: Promise<QueryClient>;
    resolveQueryClient?: (value: QueryClient | PromiseLike<QueryClient>) => void;
    observer?: QueryObserver<TData>;
    private _result?;
    get result(): QueryObserverResult<TData>;
    private observerUnsubscribe?;
    constructor(host: ReactiveControllerHost);
    setContext(): Promise<void>;
    trackQuery(queryOptions: QueryObserverOptions<TData>, optimistic?: boolean): Promise<void>;
    observerSubscribe(optimistic?: boolean): void;
    untrackQuery(): void;
    hostConnected(): void;
    hostDisconnected(): void;
}
//# sourceMappingURL=query-controller.d.ts.map