/// <reference types="node" />
import { HLSTranscoderOptions } from './types';
import EventEmitter from 'events';
export default class Transcoder extends EventEmitter {
    inputPath: string;
    outputPath: string;
    options: HLSTranscoderOptions;
    private _metadata;
    private _options;
    private _renditions?;
    constructor(inputPath: string, outputPath: string, options?: HLSTranscoderOptions);
    transcode(): Promise<unknown>;
    private buildCommands;
    private writePlaylist;
    /**
     * Check what (if any) options the user has supplied, otherwise fallback
     * to default values
     * @param options
     */
    private setOptions;
    /**
     * Runs `ffprobe` on the input video file to gather video metadata
     * @param _options
     * @param inputPath
     */
    private setMetadata;
    /**
     * Validates that the supplied ffmpegPath and ffprobePaths exist
     * @param ffmpegPath
     * @param ffprobePath
     * @returns void
     */
    private validatePaths;
    /**
     * TODO - rewrite description, but this generates a renditions object based off the supplied renditions object
     * and the supplied options, aka upscaling etc.
     */
    private generateRenditions;
    private generateOutputDir;
}
