import type { SeamHttp } from '@seamapi/http/connect';
import type { QueryClient } from '@tanstack/react-query';
import { type PropsWithChildren } from 'react';
import { type SeamQueryProviderPropsWithClient, type SeamQueryProviderPropsWithClientSessionToken, type SeamQueryProviderPropsWithPublishableKey } from '../../lib/seam/SeamQueryProvider.js';
import { type TelemetryClient } from '../../lib/telemetry/index.js';
declare global {
    var seam: SeamProviderProps | undefined;
    var seamQueryClient: QueryClient | undefined;
    var seamTelemetryClient: TelemetryClient | undefined;
}
export interface SeamContext {
}
export type SeamProviderProps = SeamProviderPropsWithClient | SeamProviderPropsWithPublishableKey | SeamProviderPropsWithClientSessionToken;
export interface SeamProviderPropsWithClient extends SeamQueryProviderPropsWithClient, SeamProviderBaseProps {
}
export interface SeamProviderPropsWithPublishableKey extends SeamProviderBaseProps, SeamQueryProviderPropsWithPublishableKey {
    publishableKey: string;
    userIdentifierKey?: string;
}
export interface SeamProviderPropsWithClientSessionToken extends SeamProviderBaseProps, SeamQueryProviderPropsWithClientSessionToken {
    clientSessionToken: string;
}
interface SeamProviderBaseProps extends PropsWithChildren {
    disableTelemetry?: boolean | undefined;
    disableCssInjection?: boolean | undefined;
    disableFontInjection?: boolean | undefined;
    unminifiyCss?: boolean | undefined;
    queryClient?: QueryClient | undefined;
    telemetryClient?: TelemetryClient | undefined;
    onSessionUpdate?: (client: SeamHttp) => void;
}
export declare const seamComponentsClassName = "seam-components";
export declare function SeamProvider({ children, disableTelemetry, disableCssInjection, disableFontInjection, unminifiyCss, telemetryClient, queryClient, ...props }: SeamProviderProps): JSX.Element;
export {};
