export declare class Recorder {
    onRecordingComplete: (data: Blob) => void;
    chunks: Blob[];
    mediaRecorder: MediaRecorder | undefined;
    recording: boolean;
    stream: MediaStream | undefined;
    constructor(onRecordingComplete: (data: Blob) => void);
    get isRecording(): boolean;
    init: (stream: MediaStream | undefined) => void;
    /**
     *
     * @param timeslice The number of milliseconds to record into each Blob. If this
     *  parameter isn't included, the entire media duration is recorded into a single
     *  Blob unless the requestData() method is called to obtain the Blob and trigger
     *  the creation of a new Blob into which the media continues to be recorded.
     */
    start: (timeslice?: number) => void;
    stop: () => void;
    onDataAvailable: (event: BlobEvent) => void;
    onStop: () => void;
}
