import { LitElement, ReactiveController, ReactiveControllerHost } from 'lit';
import { QueryClient, QueryObserverResult, QueryObserverOptions, QueryObserver } from '@tanstack/query-core';
import { ContextConsumer } from '@lit/context';
import { WeavyContextType } from '../contexts/weavy-context';

export declare class QueryController<TData = unknown> implements ReactiveController {
    host: ReactiveControllerHost;
    context?: ContextConsumer<{
        __context__: WeavyContextType;
    }, LitElement>;
    whenContext?: Promise<void>;
    resolveContext?: (value: void | PromiseLike<void>) => void;
    observer?: QueryObserver<TData>;
    private _result?;
    get result(): QueryObserverResult<TData>;
    private observerUnsubscribe?;
    constructor(host: ReactiveControllerHost);
    setContext(): Promise<void>;
    hostUpdate(): void;
    trackQuery(queryOptions: QueryObserverOptions<TData>, queryClient?: QueryClient): Promise<void>;
    observerSubscribe(): void;
    untrackQuery(): void;
    hostConnected(): void;
    hostDisconnected(): void;
}
//# sourceMappingURL=query-controller.d.ts.map