/** * VoiceIDVault JavaScript/TypeScript SDK — Type Definitions * @packageDocumentation */ export interface EnrollmentSession { sessionId: string; smsOtpSent: boolean; expiresAt: number; currentStep: 'sms_verification' | 'face_scan' | 'voice_sample' | 'complete'; } export interface SmsVerificationResult { verified: boolean; nextStep: string; remainingAttempts?: number; } export interface VoiceEnrollmentResult { enrolled: boolean; voiceprintId: string; qualityScore: number; humanConfidence: number; nextStep: string; } export interface FaceEnrollmentResult { enrolled: boolean; faceId: string; livenessScore: number; qualityScore: number; nextStep: string; } export interface EnrollmentResult { success: boolean; vaultId: string; enrolledMethods: string[]; createdAt: number; trustScore: number; metadata: { enrollmentDuration: number; faceId?: string; voiceId?: string; platform?: string; }; } export interface AuthResult { verified: boolean; identity?: { userId: string; email: string; voiceIdentityId: string; registrationDate: string; }; confidence: number; processingTime: number; sessionId: string; blockchainVerified: boolean; deepfakeAnalysis?: { passed: boolean; confidence: number; scores: { spectral: number; temporal: number; adversarial: number; weighted: number; }; indicators: string[]; }; } export interface VerificationResult { verified: boolean; nextStep?: string; remainingAttempts?: number; } export type DeletionRequestType = 'erasure' | 'portability' | 'access' | 'rectification'; export interface DeletionRequest { success: boolean; request: { id: string; requestType: DeletionRequestType; status: string; submittedAt: string; responseDeadline: string; daysUntilDeadline: number; verificationRequired: boolean; }; gdprCompliance: { article: string; responseDeadlineDays: number; status: string; }; nextSteps: string[]; } export interface TokenResponse { accessToken: string; idToken: string; tokenType: 'Bearer'; expiresIn: number; scope: string; } export interface VoiceIDVaultClientConfig { /** Your VoiceIDVault API key */ apiKey: string; /** Override the default base URL (default: https://voiceidvault.com) */ baseUrl?: string; /** Request timeout in milliseconds (default: 30000) */ timeout?: number; /** Number of retry attempts for 5xx and network errors (default: 3) */ retries?: number; } export type RiskLevel = 'low' | 'medium' | 'high' | 'critical'; export type AgentStatus = 'active' | 'suspended' | 'contained'; export type ApprovalStatus = 'pending' | 'approved' | 'rejected' | 'expired'; export type VoteChoice = 'approve' | 'reject'; export interface AgentIdentityConfig { display_name: string; ans_agent_name?: string; org_id?: string; /** M-of-N threshold: m approvals required from a pool of n authorized voters. */ approval_policy: { m: number; n: number; }; /** User IDs of humans authorized to approve agent actions. Must have at least n members. */ authorized_approvers: string[]; /** User IDs authorized for emergency containment. Defaults to authorized_approvers. */ containment_authorized?: string[]; risk_level: RiskLevel; } export interface AgentIdentity { agent_identity_id: string; display_name: string; approval_policy: { m: number; n: number; }; risk_level: RiskLevel; status: AgentStatus; created_at: string; } export interface ApprovalRequestConfig { agent_identity_id: string; /** Human-readable description of the action being authorized. */ action_description: string; /** Machine-readable payload describing the action. Not stored in audit logs in full. */ action_payload?: Record; risk_level?: RiskLevel; /** Voting window TTL in seconds. Min: 60, max: 3600. Default: 300. */ expires_in_seconds?: number; } export interface VoteCount { approve: number; reject: number; } /** Returned immediately when requestApproval is called. Status is 'pending'. */ export interface PendingApprovalRequest { request_id: string; status: ApprovalStatus; required_m: number; required_n: number; expires_at: string; created_at: string; /** Human-readable prompt, e.g. "Awaiting 3 of 5 voice-authenticated approvals" */ message: string; } /** Returned when polling approvalStatus. */ export interface ApprovalRequestStatus { request_id: string; agent_identity_id: string; action_description: string; status: ApprovalStatus; required_m: number; required_n: number; vote_count: VoteCount; quorum_reached: boolean; voters_needed: number; expires_at: string; approved_at: string | null; created_at: string; } /** Returned after confirmApproval. */ export interface ApprovalVoteResult { vote_recorded: VoteChoice; request_status: ApprovalStatus; vote_count: VoteCount; quorum_reached: boolean; voters_needed: number; expires_at: string; } /** Returned after emergencyContain. */ export interface ContainmentResult { vote_recorded: boolean; contained: boolean; agent_status: AgentStatus; containment_vote_count: number; required_m: number; message: string; } export type AacsLevel = 1 | 2 | 3 | 4 | 5; export type AacsLevelName = 'OBSERVE' | 'SUGGEST' | 'ASSIST' | 'EXECUTE' | 'AUTONOMOUS'; export type ActionDomain = 'financial' | 'data_access' | 'system_modification' | 'communication' | 'external_api' | 'containment' | 'administrative'; export type AgentRiskLevel = 'low' | 'medium' | 'high' | 'critical'; export type DataSensitivity = 'unclassified' | 'confidential' | 'secret' | 'top_secret'; export interface ActionClassificationInput { domain: ActionDomain; reversible: boolean; agent_risk_level: AgentRiskLevel; description?: string; estimated_value_usd?: number; data_sensitivity?: DataSensitivity; affected_user_count?: number; regulatory_scope?: boolean; cross_border?: boolean; /** Optional: derive quorum from agent's M-of-N policy */ approval_policy_m?: number; approval_policy_n?: number; } export interface ActionClassificationResult { aacs_level: AacsLevel; level_name: AacsLevelName; requires_approval: boolean; min_approvers: number; rationale: string; obligations: string[]; suggested_risk_level: AgentRiskLevel; quorum: number | null; eu_ai_act_article_14: boolean; } export interface BreakGlassInput { /** ARIA session token proving operator's biometric identity */ session_token: string; /** The pending approval request to override */ request_id: string; /** * HMAC-SHA256(SCIF_BREAK_GLASS_KEY, request_id) — request-specific code. * Generated offline by security team before handing to operator. */ break_glass_code: string; /** Must be at least 50 characters — explains the emergency */ justification: string; /** Must be true — operator explicitly acknowledges security implications */ acknowledged_risk: boolean; } export interface BreakGlassResult { override_token: string; expires_at: string; request_id: string; audit_id: string; warning: string; } export interface APIErrorBody { error: string; code?: string; details?: unknown; } //# sourceMappingURL=types.d.ts.map