import type { TranscriptionJob, VoiceRecording, VoiceSession, VoiceTranscriptionResult } from "../_internal/types.gen"; import type { RequestOptions } from "../base-client"; import { RequestBuilder } from "../request-builder"; /** Attributes for creating a transcription job (admin). */ export interface TranscriptionJobCreateAttributes { language?: string; model_size?: "base" | "medium" | "large" | "large-v3"; enable_diarization?: boolean; num_speakers?: number; initial_prompt?: string; pii_mode?: "none" | "tokenize" | "tokenize_encrypt"; metadata?: Record; } /** Options for minting a LiveKit token for an additional participant. */ export interface VoiceParticipantTokenOptions { participantIdentity: string; participantName?: string; canPublish?: boolean; } /** Response from participant token minting. */ export interface VoiceParticipantTokenResult { livekit_token: string; livekit_room: string; participant_identity: string; } /** * Admin-level voice session, recording, and transcription management. * * Provides cross-workspace visibility into voice sessions, recordings, * and transcription results for ISV administrators and platform operators. */ export declare function createVoiceNamespace(rb: RequestBuilder): { /** * Voice session management — admin view across all workspaces. */ sessions: { /** * List voice sessions across all workspaces. * * @param options - Optional pagination, filter, and request options. * @returns Array of VoiceSession objects. * * @example * ```typescript * const admin = new GptAdmin({ apiKey: 'sk_srv_...' }); * // List all active sessions * const activeSessions = await admin.voice.sessions.list({ status: "active" }); * // List sessions from the last 24 hours * const recentSessions = await admin.voice.sessions.list({ * insertedAfter: new Date(Date.now() - 86400000).toISOString() * }); * ``` */ list: (options?: { page?: number; pageSize?: number; status?: "active" | "ended" | "failed" | "timed_out"; insertedAfter?: string; insertedBefore?: string; } & RequestOptions) => Promise; /** * Retrieve a single voice session by ID. * * @param id - The UUID of the voice session. * @param options - Optional request options. * @returns The VoiceSession. * * @example * ```typescript * const session = await admin.voice.sessions.get('session-uuid'); * ``` */ get: (id: string, options?: RequestOptions) => Promise; /** * List voice sessions in a specific workspace. * * @param workspaceId - The UUID of the workspace. * @param options - Optional pagination and request options. * @returns Array of VoiceSession objects in the workspace. * * @example * ```typescript * const sessions = await admin.voice.sessions.listByWorkspace('ws-uuid'); * ``` */ listByWorkspace: (workspaceId: string, options?: { page?: number; pageSize?: number; } & RequestOptions) => Promise; /** * Mint a LiveKit token for an additional participant in an active session. * * This uses the ISV-scoped participant-token endpoint because the * generated admin OpenAPI surface does not include custom controller * routes. */ issueParticipantToken: (id: string, params: VoiceParticipantTokenOptions, options?: RequestOptions) => Promise; /** * Remove a participant from an active session's LiveKit room. */ removeParticipant: (id: string, participantIdentity: string, options?: RequestOptions) => Promise; }; /** * Voice recording management — admin view. */ recordings: { /** * List voice recordings. * * @param options - Optional pagination and request options. * @returns Array of VoiceRecording objects. * * @example * ```typescript * const recordings = await admin.voice.recordings.list(); * ``` */ list: (options?: { page?: number; pageSize?: number; } & RequestOptions) => Promise; /** * Retrieve a single recording by ID. * * @param id - The UUID of the recording. * @param options - Optional request options. * @returns The VoiceRecording. * * @example * ```typescript * const recording = await admin.voice.recordings.get('recording-uuid'); * ``` */ get: (id: string, options?: RequestOptions) => Promise; /** * List all recordings for a specific voice session. * * @param sessionId - The UUID of the voice session. * @param options - Optional request options. * @returns Array of VoiceRecording objects for the session. * * @example * ```typescript * const recordings = await admin.voice.recordings.bySession('session-uuid'); * ``` */ bySession: (sessionId: string, options?: RequestOptions) => Promise; }; /** * Transcription result management — admin view. */ transcriptionResults: { /** * List transcription results. * * @param options - Optional pagination and request options. * @returns Array of VoiceTranscriptionResult objects. * * @example * ```typescript * const results = await admin.voice.transcriptionResults.list(); * ``` */ list: (options?: { page?: number; pageSize?: number; } & RequestOptions) => Promise; /** * Retrieve a single transcription result by ID. * * @param id - The UUID of the transcription result. * @param options - Optional request options. * @returns The VoiceTranscriptionResult. * * @example * ```typescript * const result = await admin.voice.transcriptionResults.get('result-uuid'); * ``` */ get: (id: string, options?: RequestOptions) => Promise; /** * List transcription results for a specific voice session. * * @param sessionId - The UUID of the voice session. * @param options - Optional pagination and request options. * @returns Array of VoiceTranscriptionResult objects for the session. * * @example * ```typescript * const results = await admin.voice.transcriptionResults.bySession('session-uuid'); * ``` */ bySession: (sessionId: string, options?: { page?: number; pageSize?: number; } & RequestOptions) => Promise; }; /** * Transcription job management — admin view. * * Transcription jobs enable chunked, progressive transcription of long * audio recordings. Each job tracks uploaded chunks, assembly status, * and the final assembled transcript. */ transcriptionJobs: { /** * List transcription jobs across all workspaces. * * @param options - Optional pagination and request options. * @returns Array of TranscriptionJob objects. * * @example * ```typescript * const jobs = await admin.voice.transcriptionJobs.list(); * ``` */ list: (options?: { page?: number; pageSize?: number; } & RequestOptions) => Promise; /** * Retrieve a single transcription job by ID. * * @param id - The UUID of the transcription job. * @param options - Optional request options. * @returns The TranscriptionJob. * * @example * ```typescript * const job = await admin.voice.transcriptionJobs.get('job-uuid'); * ``` */ get: (id: string, options?: RequestOptions) => Promise; /** * List transcription jobs owned by the current actor. * * @param options - Optional pagination and request options. * @returns Array of TranscriptionJob objects. * * @example * ```typescript * const myJobs = await admin.voice.transcriptionJobs.listMine(); * ``` */ listMine: (options?: { page?: number; pageSize?: number; } & RequestOptions) => Promise; /** * List transcription jobs in a specific workspace. * * @param workspaceId - The UUID of the workspace. * @param options - Optional pagination and request options. * @returns Array of TranscriptionJob objects in the workspace. * * @example * ```typescript * const jobs = await admin.voice.transcriptionJobs.listByWorkspace('ws-uuid'); * ``` */ listByWorkspace: (workspaceId: string, options?: { page?: number; pageSize?: number; } & RequestOptions) => Promise; /** * Create a new transcription job. * * @param data - Job creation attributes (language, model_size, etc.). * @param options - Optional request options. * @returns The created TranscriptionJob. * * @example * ```typescript * const job = await admin.voice.transcriptionJobs.create({ * language: "en", * model_size: "large-v3", * }); * ``` */ create: (data?: TranscriptionJobCreateAttributes, options?: RequestOptions) => Promise; /** * Delete a transcription job by ID. * * @param id - The UUID of the transcription job to delete. * @param options - Optional request options. * * @example * ```typescript * await admin.voice.transcriptionJobs.destroy('job-uuid'); * ``` */ destroy: (id: string, options?: RequestOptions) => Promise; }; }; //# sourceMappingURL=voice.d.ts.map