import type { SeamHttp, SeamHttpEndpoints, SeamHttpOptionsWithClientSessionToken } from '@seamapi/http/connect';
import { QueryClient } from '@tanstack/react-query';
import { type PropsWithChildren } from 'react';
export interface SeamQueryContext {
    client: SeamHttp | null;
    endpointClient: SeamHttpEndpoints | null;
    clientOptions?: SeamQueryProviderClientOptions | undefined;
    publishableKey?: string | undefined;
    userIdentifierKey?: string | undefined;
    clientSessionToken?: string | undefined;
    consoleSessionToken?: string | undefined;
    workspaceId?: string | undefined;
    queryKeyPrefix?: string | undefined;
}
export type SeamQueryProviderProps = SeamQueryProviderPropsWithClient | SeamQueryProviderPropsWithPublishableKey | SeamQueryProviderPropsWithClientSessionToken | SeamQueryProviderPropsWithConsoleSessionToken;
export interface SeamQueryProviderPropsWithClient extends SeamQueryProviderBaseProps {
    client: SeamHttp;
    queryKeyPrefix: string;
}
export interface SeamQueryProviderPropsWithPublishableKey extends SeamQueryProviderBaseProps, SeamQueryProviderClientOptions {
    publishableKey: string;
    userIdentifierKey?: string;
}
export interface SeamQueryProviderPropsWithClientSessionToken extends SeamQueryProviderBaseProps, SeamQueryProviderClientOptions {
    clientSessionToken: string;
}
export interface SeamQueryProviderPropsWithConsoleSessionToken extends SeamQueryProviderBaseProps, SeamQueryProviderClientOptions {
    consoleSessionToken: string;
    workspaceId?: string | undefined;
}
interface SeamQueryProviderBaseProps extends PropsWithChildren {
    queryClient?: QueryClient | undefined;
    onSessionUpdate?: (client: SeamHttp) => void;
}
type SeamClientOptions = SeamHttpOptionsWithClientSessionToken;
export type SeamQueryProviderClientOptions = Pick<SeamClientOptions, 'endpoint' | 'isUndocumentedApiEnabled'>;
export declare function SeamQueryProvider({ children, onSessionUpdate, queryClient, ...props }: SeamQueryProviderProps): JSX.Element;
export declare const seamContext: import("react").Context<SeamQueryContext>;
export declare function useSeamQueryContext(): SeamQueryContext;
export {};
