import { type CurrentSession, type EmbedCoreLogger, type EmbedTrustLevel, type IdentityResult, type KomoRegion, type PortableFetch, type RuntimeFetch } from '@komo-tech/embed-core'; import { type ReactNode } from 'react'; import { type KomoAuthError } from './KomoAuthError'; type GetIdentityToken = () => Promise | IdentityResult; type IdentityChangedPayload = { previousContactId?: string; contactId: string; reason: 'exchange' | 'merge'; }; type KomoClientProviderLogger = Pick; export interface KomoClientProviderProps { appId: string; /** @deprecated Obsolete. No longer used and will be removed. */ siteId?: string; /** @deprecated Include region in appId as {region}_{appId}. */ region?: KomoRegion; fetch?: PortableFetch | RuntimeFetch; logger?: KomoClientProviderLogger; getIdentityToken: GetIdentityToken; onAuthenticated?: (payload: { contactId: string; trustLevel: EmbedTrustLevel; }) => void; onSessionExpired?: (payload: { reason: 'expired' | 'refresh_failed' | 'logged_out'; }) => void; onAuthError?: (error: KomoAuthError) => void; onIdentityChanged?: (payload: IdentityChangedPayload) => void; children: ReactNode; } export interface KomoSessionContextValue { isConfigured: true; session: CurrentSession; getSessionToken: () => Promise; getCurrentSession: () => CurrentSession; identify: () => Promise; redeemHandoff: (handoffToken: string) => Promise; logout: () => void; appId: string; sdkInstanceId: string; } export declare function KomoClientProvider({ appId, region, fetch, logger, getIdentityToken, onAuthenticated, onSessionExpired, onAuthError, onIdentityChanged, children }: KomoClientProviderProps): import("react/jsx-runtime").JSX.Element; export declare function useKomoSession(): KomoSessionContextValue; export declare function useOptionalKomoSession(): KomoSessionContextValue | null; export {}; //# sourceMappingURL=KomoClientProvider.d.ts.map