import { IRoomService } from '../';

export interface SubtitleMessage {
    sender: string;
    text: string;
    translationText: string;
    end?: boolean;
    startMsTs: number;
}
export declare enum AI_TASK {
    TRANSCRIPTION_TASK = "transcription"
}
export interface AITaskEvent {
    [AI_TASK.TRANSCRIPTION_TASK]: {
        subtitleMessages: {
            [key: string]: SubtitleMessage;
        };
        transcribedMessageList: SubtitleMessage[];
    };
    [key: string]: unknown;
    [key: symbol]: unknown;
}
export declare class AITask {
    private emitter;
    private trtc;
    private service;
    subtitleMessages: {
        [key: string]: SubtitleMessage;
    };
    transcribedMessageList: SubtitleMessage[];
    private subtitleTimeout;
    constructor(service: IRoomService);
    private bindCtx;
    on<T extends keyof AITaskEvent>(eventType: T, callback: (data?: AITaskEvent[T]) => void): void;
    off<T extends keyof AITaskEvent>(eventType: T, callback: (data?: AITaskEvent[T]) => void): void;
    emit<T extends keyof AITaskEvent>(eventType: T, data: AITaskEvent[T]): void;
    dispose(): void;
    private handleMount;
    private handleUnmount;
    private bindEvent;
    private resetSubtitleTimeout;
    private handleAIMessage;
    private handleMessage;
}
