import EventEmitter from "node:events";
import { IDownloader, MesioRecorderOptions, Segment } from "./IDownloader.js";
declare class MesioCommand extends EventEmitter {
    private _input;
    private _output;
    private _inputOptions;
    private process;
    constructor();
    input(source: string): MesioCommand;
    output(target: string): MesioCommand;
    inputOptions(options: string[]): MesioCommand;
    inputOptions(...options: string[]): MesioCommand;
    _getArguments(): string[];
    run(): void;
    kill(): void;
}
export declare const createMesioBuilder: () => MesioCommand;
export declare class mesioDownloader extends EventEmitter implements IDownloader {
    private onEnd;
    private onUpdateLiveInfo;
    type: "mesio";
    private command;
    private streamManager;
    readonly hasSegment: boolean;
    readonly getSavePath: (data: {
        startTime: number;
        title?: string;
    }) => string;
    readonly segment: Segment;
    readonly inputOptions: string[];
    readonly disableDanma: boolean;
    readonly url: string;
    readonly debugLevel: "none" | "basic" | "verbose";
    readonly headers: {
        [key: string]: string | undefined;
    } | undefined;
    constructor(opts: MesioRecorderOptions, onEnd: (...args: unknown[]) => void, onUpdateLiveInfo: () => Promise<{
        title?: string;
        cover?: string;
    }>);
    createCommand(): MesioCommand;
    run(): void;
    getArguments(): string[];
    stop(): Promise<void>;
    getExtraDataController(): import("../xml_stream_controller.js").XmlStreamController | null;
    get videoFilePath(): string;
    cut(): void;
}
export {};
