/** * VoiceIDVault JavaScript/TypeScript SDK * * @example * ```ts * import { VoiceIDVaultClient } from '@voiceidvault/sdk'; * * const client = new VoiceIDVaultClient({ apiKey: 'your-api-key' }); * * // Enrollment * const session = await client.initEnrollment('user-123', '+12125551234'); * await client.verifySmsOtp(session.sessionId, 'user-123', '123456'); * await client.enrollFace(session.sessionId, 'user-123', faceImageBlob); * await client.enrollVoice(session.sessionId, 'user-123', audioBlob); * const result = await client.completeEnrollment(session.sessionId, 'user-123'); * * // Agent authorization * const agent = await client.agents.register({ * display_name: 'Treasury Agent', * approval_policy: { m: 3, n: 5 }, * authorized_approvers: [id1, id2, id3, id4, id5], * risk_level: 'high', * }); * const req = await client.agents.requestApproval({ * agent_identity_id: agent.agent_identity_id, * action_description: 'Wire $2,150,000 to acct ending 4521', * }); * ``` */ import { AgentsNamespace } from './agents.js'; import { VoiceIDVaultError, AuthenticationError, EnrollmentError, NetworkError, RateLimitError } from './errors.js'; import type { AuthResult, DeletionRequest, DeletionRequestType, EnrollmentResult, EnrollmentSession, FaceEnrollmentResult, SmsVerificationResult, TokenResponse, VoiceEnrollmentResult, VoiceIDVaultClientConfig, AgentIdentity, AgentIdentityConfig, AgentStatus, ApprovalRequestConfig, ApprovalRequestStatus, ApprovalStatus, ApprovalVoteResult, ContainmentResult, PendingApprovalRequest, RiskLevel, VoteChoice, VoteCount, ActionClassificationInput, ActionClassificationResult, AacsLevel, AacsLevelName, ActionDomain, AgentRiskLevel, DataSensitivity, BreakGlassInput, BreakGlassResult } from './types.js'; export type { AuthResult, DeletionRequest, DeletionRequestType, EnrollmentResult, EnrollmentSession, FaceEnrollmentResult, SmsVerificationResult, TokenResponse, VoiceEnrollmentResult, VoiceIDVaultClientConfig, AgentIdentity, AgentIdentityConfig, AgentStatus, ApprovalRequestConfig, ApprovalRequestStatus, ApprovalStatus, ApprovalVoteResult, ContainmentResult, PendingApprovalRequest, RiskLevel, VoteChoice, VoteCount, ActionClassificationInput, ActionClassificationResult, AacsLevel, AacsLevelName, ActionDomain, AgentRiskLevel, DataSensitivity, BreakGlassInput, BreakGlassResult, }; export { VoiceIDVaultError, AuthenticationError, EnrollmentError, NetworkError, RateLimitError, }; export { AgentsNamespace }; /** * Main VoiceIDVault client. * All methods map 1-to-1 to `/api/v1/` REST endpoints and throw typed errors * on non-2xx HTTP responses or network failures. */ export declare class VoiceIDVaultClient { private readonly cfg; /** M-of-N agent authorization sub-namespace. */ readonly agents: AgentsNamespace; constructor(config: VoiceIDVaultClientConfig); /** POST /api/v1/enrollment/init */ initEnrollment(userId: string, phoneNumber: string, metadata?: Record): Promise; /** POST /api/v1/enrollment/verify-sms */ verifySmsOtp(sessionId: string, userId: string, otp: string): Promise; /** * POST /api/v1/enrollment/voice * Accepts a Blob (browser) or ArrayBuffer (Node.js). */ enrollVoice(sessionId: string, userId: string, audio: Blob | ArrayBuffer, options?: { phrase?: string; duration?: number; sampleRate?: number; }): Promise; /** * POST /api/v1/enrollment/face * Accepts a Blob (browser) or ArrayBuffer (Node.js) of a JPEG/PNG image. */ enrollFace(sessionId: string, userId: string, image: Blob | ArrayBuffer, options?: { liveVideoFrames?: string[]; }): Promise; /** POST /api/v1/enrollment/complete */ completeEnrollment(sessionId: string, userId: string): Promise; /** * POST /api/v1/voice/verify * Omit `userId` for open-set speaker search. */ authenticateVoice(audio: Blob | ArrayBuffer, options?: { userId?: string; confidenceThreshold?: number; format?: 'webm' | 'wav' | 'mp3'; }): Promise; /** * Exchange an OAuth2 authorization code for access and ID tokens. * POST /api/oauth/token (application/x-www-form-urlencoded) */ getToken(code: string, clientId: string, clientSecret: string, redirectUri: string, codeVerifier?: string): Promise; /** POST /api/v1/verify/multimodal */ verifyMultimodal(sessionId: string): Promise<{ verified: boolean; confidence: number; }>; /** POST /api/v1/compliance/deletion-request */ requestDeletion(requestType?: DeletionRequestType, options?: { requestedData?: string[]; reason?: string; priority?: 'normal' | 'urgent' | 'legal'; }): Promise; } export default VoiceIDVaultClient; //# sourceMappingURL=index.d.ts.map