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<string, unknown>;
}
/** 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<VoiceSession[]>;
        /**
         * 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<VoiceSession>;
        /**
         * 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<VoiceSession[]>;
        /**
         * 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<VoiceParticipantTokenResult>;
        /**
         * Remove a participant from an active session's LiveKit room.
         */
        removeParticipant: (id: string, participantIdentity: string, options?: RequestOptions) => Promise<void>;
    };
    /**
     * 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<VoiceRecording[]>;
        /**
         * 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<VoiceRecording>;
        /**
         * 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<VoiceRecording[]>;
    };
    /**
     * 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<VoiceTranscriptionResult[]>;
        /**
         * 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<VoiceTranscriptionResult>;
        /**
         * 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<VoiceTranscriptionResult[]>;
    };
    /**
     * 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<TranscriptionJob[]>;
        /**
         * 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<TranscriptionJob>;
        /**
         * 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<TranscriptionJob[]>;
        /**
         * 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<TranscriptionJob[]>;
        /**
         * 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<TranscriptionJob>;
        /**
         * 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<void>;
    };
};
//# sourceMappingURL=voice.d.ts.map