/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
import { ChildProcess } from 'child_process';
import { Readable, Writable } from 'stream';
import { Logger as TsLogger, ILogObj } from 'tslog';
import EventEmitter from 'events';
import { FFmpegProgress } from './ffmpeg-progress';
import { FFmpegParameters } from './ffmpeg-params';
export declare class FFmpeg extends EventEmitter {
    protected name: string;
    protected parameters: FFmpegParameters[];
    protected log: TsLogger<ILogObj>;
    process?: ChildProcess;
    protected progress?: FFmpegProgress;
    protected commandLineArgs: string[];
    protected ffmpegExec: string;
    stdio?: [
        Writable | null,
        Readable | null,
        Readable | null,
        Readable | Writable | null | undefined,
        Readable | Writable | null | undefined
    ];
    protected starttime?: number;
    protected killTimeout?: NodeJS.Timeout;
    isEnded: boolean;
    constructor(name: string, parameters: FFmpegParameters[], log: TsLogger<ILogObj>);
    start(): void;
    getResult(input?: Buffer): Promise<Buffer>;
    stop(): void;
    protected onProgressStarted(): void;
    protected onProcessError(error: Error): void;
    protected onProcessExit(code: number, signal: NodeJS.Signals): void;
    get stdin(): Writable | null;
    get stdout(): Readable | null;
    get stderr(): Readable | null;
}
//# sourceMappingURL=ffmpeg.d.ts.map