import { Message } from "./common.js";
export interface XmlStreamStats {
    danmaNum: number;
    uniqMember: number;
    scNum: number;
    guardNum: number;
}
export interface XmlStreamData {
    header: string;
    meta: {
        title?: string;
        recordStartTimestamp: number;
        recordStopTimestamp?: number;
        liveStartTimestamp?: number;
        downloaderArgs?: string[];
        platform?: string;
        user_name?: string;
        room_id?: string;
    };
    /** 缓存的消息，待写入到文件 */
    pendingMessages: Message[];
}
export interface XmlStreamController {
    /** 设计上来说，外部程序不应该能直接修改 data 上的东西 */
    readonly data: XmlStreamData;
    addMessage: (message: Message) => void;
    setMeta: (meta: Partial<XmlStreamData["meta"]>) => Promise<void>;
    flush: () => Promise<void>;
    getStats: () => XmlStreamStats;
}
export declare function createRecordExtraDataController(savePath: string): XmlStreamController;
