import * as React from "react";
import { ReadonlySignal } from "@preact-signals/unified-signals";
import type { QueryClient } from "@tanstack/query-core";
import type { ContextOptions } from "./types";
declare global {
    interface Window {
        ReactQueryClientContext?: React.Context<QueryClient | undefined>;
    }
}
export declare const defaultContext: React.Context<QueryClient | undefined>;
export declare const useQueryClient: ({ context }?: ContextOptions) => QueryClient;
export declare const useQueryClient$: (options?: ContextOptions) => ReadonlySignal<QueryClient>;
type QueryClientProviderPropsBase = {
    client: QueryClient;
    children?: React.ReactNode;
};
type QueryClientProviderPropsWithContext = ContextOptions & {
    contextSharing?: never;
} & QueryClientProviderPropsBase;
type QueryClientProviderPropsWithContextSharing = {
    context?: never;
    contextSharing?: boolean;
} & QueryClientProviderPropsBase;
export type QueryClientProviderProps = QueryClientProviderPropsWithContext | QueryClientProviderPropsWithContextSharing;
export declare const QueryClientProvider: ({ client, children, context, contextSharing, }: QueryClientProviderProps) => JSX.Element;
export {};
