import type { Database } from "better-sqlite3"; export interface VoiceTranscriptInput { talkSessionId: string; browserInstanceId: string; credentialGeneration: number; providerItemId: string; providerEventId: string; transcript: string; recordedAt: number; } export interface VoiceTranscript extends VoiceTranscriptInput { inputOrdinal: number; } export interface ApprovalChallenge { id: string; talkSessionId: string; operatorPrincipal: string; browserInstanceId: string; credentialGeneration: number; prepareProviderCallId: string; requestFingerprint: string; preparedAfterOrdinal: number; todoId: string; approvalId: string; approvalFingerprint: string; scopeJson: string; createdAt: number; expiresAt: number; status: "pending" | "committed" | "expired"; committedAt: number | null; } export interface ApprovalAudit { id: string; challengeId: string; talkSessionId: string; operatorPrincipal: string; browserInstanceId: string; credentialGeneration: number; providerCallId: string; providerToolItemId: string | null; providerToolEventId: string | null; providerTranscriptItemId: string | null; providerTranscriptEventId: string | null; requestFingerprint: string; transcript: string | null; outcome: "committed" | "refused"; code: string; result: string; createdAt: number; } export declare class TalkApprovalRepository { private readonly database; constructor(database: Database); transaction(work: () => T): T; recordTranscript(input: VoiceTranscriptInput): VoiceTranscript; getTranscript(talkSessionId: string, generation: number, providerItemId: string): VoiceTranscript | null; createChallenge(input: Omit): { challenge: ApprovalChallenge; replayed: boolean; }; findChallengeByCall(talkSessionId: string, generation: number, providerCallId: string): ApprovalChallenge | null; getChallenge(id: string): ApprovalChallenge | null; markCommitted(id: string, committedAt: number): boolean; findAuditByCall(talkSessionId: string, generation: number, providerCallId: string): ApprovalAudit | null; committedTranscriptWasUsed(talkSessionId: string, generation: number, providerItemId: string): boolean; recordAudit(input: Omit): ApprovalAudit; listAudit(challengeId: string): ApprovalAudit[]; } //# sourceMappingURL=repository.d.ts.map