import type { BaseServiceParams, SubtitleFormat, TranscribeParams } from "assemblyai";
import { AssemblyAI } from "assemblyai";
import { Document } from "../Node.js";
import type { BaseReader } from "./type.js";
type AssemblyAIOptions = Partial<BaseServiceParams>;
/**
 * Base class for AssemblyAI Readers.
 */
declare abstract class AssemblyAIReader implements BaseReader {
    protected client: AssemblyAI;
    /**
     * Creates a new AssemblyAI Reader.
     * @param assemblyAIOptions The options to configure the AssemblyAI Reader.
     * Configure the `assemblyAIOptions.apiKey` with your AssemblyAI API key, or configure it as the `ASSEMBLYAI_API_KEY` environment variable.
     */
    constructor(assemblyAIOptions?: AssemblyAIOptions);
    abstract loadData(params: TranscribeParams | string): Promise<Document[]>;
    protected transcribeOrGetTranscript(params: TranscribeParams | string): Promise<import("assemblyai").Transcript>;
    protected getTranscriptId(params: TranscribeParams | string): Promise<string>;
}
/**
 * Transcribe audio and read the transcript as a document using AssemblyAI.
 */
declare class AudioTranscriptReader extends AssemblyAIReader {
    /**
     * Transcribe audio or get a transcript and load the transcript as a document using AssemblyAI.
     * @param params Parameters to transcribe an audio file or get an existing transcript.
     * @returns A promise that resolves to a single document containing the transcript text.
     */
    loadData(params: TranscribeParams | string): Promise<Document[]>;
}
/**
 * Transcribe audio and return a document for each paragraph.
 */
declare class AudioTranscriptParagraphsReader extends AssemblyAIReader {
    /**
     * Transcribe audio or get a transcript, and returns a document for each paragraph.
     * @param params The parameters to transcribe audio or get an existing transcript.
     * @returns A promise that resolves to an array of documents, each containing a paragraph of the transcript.
     */
    loadData(params: TranscribeParams | string): Promise<Document[]>;
}
/**
 * Transcribe audio and return a document for each sentence.
 */
declare class AudioTranscriptSentencesReader extends AssemblyAIReader {
    /**
     * Transcribe audio or get a transcript, and returns a document for each sentence.
     * @param params The parameters to transcribe audio or get an existing transcript.
     * @returns A promise that resolves to an array of documents, each containing a sentence of the transcript.
     */
    loadData(params: TranscribeParams | string): Promise<Document[]>;
}
/**
 * Transcribe audio a transcript and read subtitles for the transcript as `srt` or `vtt` format.
 */
declare class AudioSubtitlesReader extends AssemblyAIReader {
    /**
     * Transcribe audio or get a transcript and reads subtitles for the transcript as `srt` or `vtt` format.
     * @param params The parameters to transcribe audio or get an existing transcript.
     * @param subtitleFormat The format of the subtitles, either `srt` or `vtt`.
     * @returns A promise that resolves a document containing the subtitles as the page content.
     */
    loadData(params: TranscribeParams | string, subtitleFormat?: SubtitleFormat): Promise<Document[]>;
}
export { AudioSubtitlesReader, AudioTranscriptParagraphsReader, AudioTranscriptReader, AudioTranscriptSentencesReader, };
export type { AssemblyAIOptions, SubtitleFormat, TranscribeParams };
