import { Subscription } from "expo-modules-core";
import { AudioRecording, RecordingConfig, StartRecordingResult } from "./types";
export declare class ExpoPlayAudioStream {
    /**
     * Starts microphone recording.
     * @param {RecordingConfig} recordingConfig - Configuration for the recording.
     * @returns {Promise<{recordingResult: StartRecordingResult, subscription: Subscription}>} A promise that resolves to an object containing the recording result and a subscription to audio events.
     * @throws {Error} If the recording fails to start.
     */
    static startRecording(recordingConfig: RecordingConfig): Promise<{
        recordingResult: StartRecordingResult;
        subscription?: Subscription;
    }>;
    /**
     * Stops the current microphone recording.
     * @returns {Promise<AudioRecording>} A promise that resolves to the audio recording data.
     * @throws {Error} If the recording fails to stop.
     */
    static stopRecording(): Promise<AudioRecording>;
    /**
     * Plays an audio chunk.
     * @param {string} base64Chunk - The base64 encoded audio chunk to play.
     * @returns {Promise<void>}
     * @throws {Error} If the audio chunk fails to stream.
     */
    static playAudio(base64Chunk: string, turnId: string): Promise<void>;
    /**
     * Pauses the current audio playback.
     * @returns {Promise<void>}
     * @throws {Error} If the audio playback fails to pause.
     */
    static pauseAudio(): Promise<void>;
    /**
     * Stops the currently playing audio.
     * @returns {Promise<void>}
     * @throws {Error} If the audio fails to stop.
     */
    static stopAudio(): Promise<void>;
    /**
     * Sets the volume for the audio playback.
     * @param {number} volume - The volume to set (0.0 to 1.0).
     * @returns {Promise<void>}
     * @throws {Error} If the volume fails to set.
     */
    static setVolume(volume: number): Promise<void>;
    static clearPlaybackQueueByTurnId(turnId: string): Promise<void>;
}
//# sourceMappingURL=index.d.ts.map