declare interface Branding { logo?: string; color?: string; name?: string; logoAlt?: string; hideLogoOnMobile?: boolean; showPoweredBy?: boolean; poweredByText?: string; poweredByLogo?: string; } declare interface LivenessData { faceImage: string; passed: boolean; metadata?: Metadata; error?: { key: string; message: string; statusCode?: number; name?: string; success?: boolean; data?: Record; }; } declare interface LivenessWebSdkProps { publicKey?: string; entityId?: string; isEmbedded?: boolean; presentation?: Presentation; tasks?: Array; user?: User; branding?: Branding; isMobileAppWebView?: boolean; allowAudio?: boolean; onClose?: () => void; onSuccess?: (data: LivenessData) => void; onFailure?: (data: LivenessData) => void; metadata?: Metadata; sandboxEnvironment?: boolean; sessionId: string; sessionToken: string; forceDevUrl?: boolean; mediaDeviceValidation?: MediaDeviceValidationOptions; } declare interface MediaDeviceValidationOptions { enabled?: boolean; blockedPatterns?: string[]; } declare type Metadata = Record; declare interface PassiveTask extends TaskBase<"passive"> { id: "passive"; } declare type Presentation = "modal" | "page"; declare type Task = PassiveTask; declare interface TaskBase { id: T; difficulty?: TaskDifficulty; timeout?: number; } declare type TaskDifficulty = "easy" | "medium" | "hard"; declare type TaskId = "passive"; declare interface User { firstName: string; lastName?: string; email?: string; } declare class WebSDK { private tasks; private container; private namespace; private props; private presentation; private loadedScripts; constructor(props: LivenessWebSdkProps); private validateOptions; start(tasks?: Array): Promise; private unmount; close(): void; } export default WebSDK; export { }