import { ExerciseResult } from '../../../entities';
import { Exercise } from '../../../entities/exercise';
import { SetExerciseIdDto } from '../dto/exercise-id.dto';
import { SetConfigDto } from '../dto/set-config.dto';
import { EventBus } from '../event-bus';
export declare class SpeechApiConnection {
    private readonly url;
    private websocket?;
    readonly eventBus: EventBus;
    private connectionMonitor?;
    private messageQueue?;
    constructor(url: string);
    connect(token: string): Promise<void>;
    disconnect(): void;
    sendAudio(data: Blob | ArrayBuffer): Promise<void>;
    getResult(): Promise<ExerciseResult | undefined>;
    setExercise(exercise: Exercise): Promise<{
        result: {
            success: boolean;
            error?: string;
        };
    }>;
    setPrompt(prompt: string, confusion?: string | string[][], metadata?: {
        [key: string]: string | number | boolean;
    }): Promise<{
        result: {
            success: boolean;
            error?: string;
        };
    }>;
    setChoice(correctOptions: string[], incorrectOptions: string[], metadata?: {
        [key: string]: string | number | boolean;
    }, multiple?: boolean): Promise<{
        result: {
            success: boolean;
            error?: string;
        };
    }>;
    setExerciseId(config: SetExerciseIdDto): Promise<{
        result: {
            success: boolean;
            error?: string;
        };
    }>;
    updateAccessToken(accessToken: string): Promise<void>;
    setConfig(config: SetConfigDto): Promise<void>;
}
