import { AudioQuery } from "./types";
import { VoicevoxQueueManager } from "./queue";
/**
 * VOICEVOX音声プレイヤークラス
 * キュー管理システムを使用して音声の合成と再生を行う
 */
export declare class VoicevoxPlayer {
    private queueManager;
    /**
     * コンストラクタ
     * @param voicevoxUrl VOICEVOX Engine API URL
     * @param prefetchSize 事前生成するアイテム数
     */
    constructor(voicevoxUrl?: string, prefetchSize?: number);
    /**
     * テキストをキューに追加
     * @param text 合成するテキスト
     * @param speaker 話者ID
     */
    enqueue(text: string, speaker?: number): Promise<void>;
    /**
     * クエリを使ってキューに追加
     * @param query 音声合成用クエリ
     * @param speaker 話者ID
     */
    enqueueWithQuery(query: AudioQuery, speaker?: number): Promise<void>;
    /**
     * テキストから音声合成用クエリを生成
     * キューマネージャーの内部機能を使用
     * @param text 合成するテキスト
     * @param speaker 話者ID
     */
    generateQuery(text: string, speaker?: number): Promise<AudioQuery>;
    /**
     * 音声合成用クエリから音声ファイルを生成
     * 重複を避けるためにQueueManagerの機能に委譲
     *
     * @param query 音声合成用クエリ
     * @param output 出力ファイルパスまたは出力ディレクトリ（省略時は一時ディレクトリに生成）
     * @param speaker 話者ID
     */
    synthesizeToFile(query: AudioQuery, output?: string, speaker?: number): Promise<string>;
    /**
     * 再生を開始
     */
    startPlayback(): void;
    /**
     * 再生を一時停止
     */
    pausePlayback(): void;
    /**
     * 再生を再開
     */
    resumePlayback(): void;
    /**
     * キュー内のアイテム数を取得
     */
    getQueueLength(): number;
    /**
     * キューが空かどうかを確認
     */
    isQueueEmpty(): boolean;
    /**
     * キューが再生中かどうかを確認
     */
    isPlaying(): boolean;
    /**
     * キューマネージャーインスタンスを取得
     * 高度な操作のため公開
     */
    getQueueManager(): VoicevoxQueueManager;
}
//# sourceMappingURL=player.d.ts.map