import type { AuthEnvelope } from "../../authProfileLayer/authEnvelope.js";
export declare const OPENAI_V1_AUDIO_TRANSCRIPTIONS_ENDPOINT: "/v1/audio/transcriptions";
export declare const DEFAULT_OPENAI_V1_AUDIO_TRANSCRIPTIONS_BASE_URL: "https://api.openai.com";
export type OpenAIAudioTranscriptionBoundary = "input" | "provider" | "contract" | "governance" | "auth" | "scope" | "response";
export type OpenAIAudioTranscriptionGate = {
    accepted: boolean;
    reason?: string;
};
export type OpenAIAudioTranscriptionFile = {
    id?: string;
    name?: string;
    mimeType?: string;
    byteLength?: number;
    sourceRef?: string;
};
export type OpenAIAudioTranscriptionProviderError = {
    status?: number;
    code?: string;
    message?: string;
    timedOut?: boolean;
    rateLimited?: boolean;
    authFailed?: boolean;
    endpointAvailable?: boolean;
    responseBody?: unknown;
};
export type OpenAIAudioTranscriptionRequest = {
    requestId?: string;
    model?: string;
    file?: OpenAIAudioTranscriptionFile;
    body?: Readonly<Record<string, unknown>>;
    baseUrl?: string;
    headers?: Readonly<Record<string, string | undefined>>;
    auth?: AuthEnvelope;
    apiKeyRef?: string;
    organizationId?: string;
    projectId?: string;
    timeoutMs?: number;
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    dryRun?: boolean;
    trace?: Readonly<Record<string, string | undefined>>;
    providerResponse?: unknown;
    providerError?: OpenAIAudioTranscriptionProviderError;
    expectResponseObject?: boolean;
    caller?: (envelope: OpenAIAudioTranscriptionEnvelope) => unknown | Promise<unknown>;
    contract?: OpenAIAudioTranscriptionGate;
    governance?: OpenAIAudioTranscriptionGate;
};
export type OpenAIAudioTranscriptionErrorCode = "MISSING_MODEL" | "MISSING_AUDIO_FILE" | "INVALID_REQUEST_BODY" | "INVALID_TIMEOUT" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SCOPE_DENIED" | "AUTH_REJECTED" | "CALLER_REQUIRED" | "REAL_PROVIDER_CALL_NOT_ALLOWED" | "PROVIDER_AUTH_FAILED" | "PROVIDER_RATE_LIMITED" | "PROVIDER_TIMEOUT" | "PROVIDER_ENDPOINT_UNAVAILABLE" | "PROVIDER_RESPONSE_DRIFT" | "PROVIDER_REJECTED";
export type OpenAIAudioTranscriptionError = {
    code: OpenAIAudioTranscriptionErrorCode;
    message: string;
    boundary: OpenAIAudioTranscriptionBoundary;
    safeForRuntimeInspection: true;
    providerRawDetailExposed: false;
};
export type OpenAIAudioTranscriptionEnvelope = {
    provider: "openai";
    endpoint: typeof OPENAI_V1_AUDIO_TRANSCRIPTIONS_ENDPOINT;
    method: "POST";
    url: string;
    requestId: string;
    requestShape: "multipart-form-data";
    model: string;
    file: OpenAIAudioTranscriptionFile;
    headers: Readonly<Record<string, string>>;
    body: Readonly<Record<string, unknown>>;
    auth: {
        apiKeyRef?: string;
        organizationId?: string;
        projectId?: string;
        materialPresent: boolean;
        envelope?: AuthEnvelope;
    };
    runtime: {
        timeoutMs?: number;
        requestedScopes: readonly string[];
        dryRun: boolean;
        providerCallPlanned: boolean;
        unsafeSideEffects: false;
    };
    trace: Readonly<Record<string, string | undefined>>;
};
export type OpenAIAudioTranscriptionResponseEnvelope = {
    provider: "openai";
    endpoint: typeof OPENAI_V1_AUDIO_TRANSCRIPTIONS_ENDPOINT;
    raw: unknown;
    received: true;
    providerRawShapePromoted: false;
};
export type OpenAIAudioTranscriptionResult = {
    ok: true;
    request: OpenAIAudioTranscriptionEnvelope;
    response?: OpenAIAudioTranscriptionResponseEnvelope;
    capability: typeof openAIAudioTranscriptionsDescriptor;
    events: readonly string[];
} | {
    ok: false;
    error: OpenAIAudioTranscriptionError;
    events: readonly string[];
};
export declare const openAIAudioTranscriptionsDescriptor: {
    readonly provider: "openai";
    readonly layer: "actualInvocationLayer";
    readonly endpoint: "/v1/audio/transcriptions";
    readonly method: "POST";
    readonly modality: "audio";
    readonly operation: "transcription";
    readonly requestShape: "multipart-form-data";
    readonly providerRawShapePromoted: false;
    readonly unsafeSideEffects: false;
};
export declare function createOpenAIAudioTranscriptionInvocation(request?: OpenAIAudioTranscriptionRequest): Promise<OpenAIAudioTranscriptionResult>;
