/// <reference types="node" />
import { Readable } from 'stream';
import { CameraConfig, VideoConfig } from './configTypes';
import { CameraRecordingConfiguration, ReconfigureStreamRequest, SnapshotRequest, StartStreamRequest } from 'homebridge';
import { SessionInfo } from '../controller/streamingDelegate';
export declare class FFmpegParameters {
    progressPort: number;
    debug: boolean;
    private hideBanner;
    private useWallclockAsTimestamp;
    private inputSoure;
    private protocolWhitelist?;
    private inputCodec?;
    private inputFormat?;
    private output;
    isVideo: boolean;
    isAudio: boolean;
    isSnapshot: boolean;
    private analyzeDuration?;
    private probeSize?;
    private stimeout?;
    private readrate?;
    private codec;
    private codecOptions?;
    private bitrate?;
    private payloadType?;
    private ssrc?;
    private srtpSuite?;
    private srtpParams?;
    private format?;
    private fps?;
    private pixFormat?;
    private colorRange?;
    private filters?;
    private width?;
    private height?;
    private bufsize?;
    private maxrate?;
    private sampleRate?;
    private channels?;
    private flagsGlobalHeader;
    private numberFrames?;
    private delaySnapshot;
    private movflags?;
    private maxMuxingQueueSize?;
    private iFrameInterval?;
    private constructor();
    private static allocateddPort;
    static allocateTCPPort(): Promise<number>;
    static allocateUDPPort(): Promise<number>;
    static create(options: {
        type: 'audio' | 'video' | 'snapshot' | 'videoRecording' | 'audioRecording';
        debug?: boolean;
    }): Promise<FFmpegParameters>;
    usesStdInAsInput(): boolean;
    setInputSource(value: string): void;
    private createServerWithTimeout;
    setInputStream(input: Readable): Promise<void>;
    setDelayedSnapshot(): void;
    setup(cameraConfig: CameraConfig, request: StartStreamRequest | ReconfigureStreamRequest | SnapshotRequest | undefined): void;
    setRTPTarget(sessionInfo: SessionInfo, request: StartStreamRequest): void;
    setOutput(output: string): void;
    setupForRecording(videoConfig: VideoConfig, configuration: CameraRecordingConfiguration): void;
    setTalkbackInput(sessionInfo: SessionInfo): Promise<void>;
    private buildGenericParameters;
    private buildInputParamters;
    private buildFilterParameters;
    private buildEncodingParameters;
    private buildOutputParameters;
    private buildParameters;
    getProcessArguments(): string[];
    static getRecordingArguments(parameters: FFmpegParameters[]): string[];
    static getCombinedArguments(parameters: FFmpegParameters[]): string[];
    getStreamStartText(): string;
}
//# sourceMappingURL=ffmpeg-params.d.ts.map