import type { CloudProvider } from "./cloud-providers.js";
import type { WhisperProgressEvent, WhisperTranscriptionResult } from "./types.js";
type Env = Record<string, string | undefined>;
export type RemoteByteState = {
    bytes: Uint8Array;
    mediaType: string;
    filename: string | null;
};
type RemoteByteAttemptResult = {
    state: RemoteByteState;
    result: WhisperTranscriptionResult | null;
    error: Error | null;
    skipped?: boolean;
};
type RemoteFileAttemptResult = {
    kind: "result";
    result: WhisperTranscriptionResult;
} | {
    kind: "error";
    error: Error;
} | {
    kind: "delegate-to-bytes";
};
type TranscribeOversizedBytesWithChunking = (args: {
    bytes: Uint8Array;
    mediaType: string;
    filename: string | null;
    onProgress?: ((event: WhisperProgressEvent) => void) | null;
}) => Promise<WhisperTranscriptionResult>;
export declare function attemptRemoteBytesProvider(args: {
    provider: CloudProvider;
    state: RemoteByteState;
    assemblyaiApiKey: string | null;
    geminiApiKey: string | null;
    openaiApiKey: string | null;
    falApiKey: string | null;
    deepgramApiKey: string | null;
    env: Env;
    notes: string[];
    onProgress?: ((event: WhisperProgressEvent) => void) | null;
    transcribeOversizedBytesWithChunking?: TranscribeOversizedBytesWithChunking;
}): Promise<RemoteByteAttemptResult>;
export declare function attemptRemoteFileProvider(args: {
    provider: CloudProvider;
    filePath: string;
    mediaType: string;
    filename: string | null;
    assemblyaiApiKey: string | null;
    geminiApiKey: string | null;
    deepgramApiKey: string | null;
    env: Env;
}): Promise<RemoteFileAttemptResult>;
export {};
