import { ReactElement } from 'react'; declare type MediaRecorderOptions = { mimeType: string; }; declare type ReactMediaRecorderRenderProps = { error: string; muteAudio: () => void; unMuteAudio: () => void; startRecording: () => void; pauseRecording: () => void; resumeRecording: () => void; stopRecording: () => void; mediaBlobUrl: null | string; status: StatusMessages; isAudioMuted: boolean; previewStream: MediaStream | null; clearBlobUrl: () => void; }; declare type ReactMediaRecorderProps = { render: (props: ReactMediaRecorderRenderProps) => ReactElement; audio?: boolean | MediaTrackConstraints; video?: boolean | MediaTrackConstraints; screen?: boolean; onStop?: (blobUrl: string, blob: Blob) => void; blobPropertyBag?: BlobPropertyBag; mediaRecorderOptions?: MediaRecorderOptions | null; getStream?: () => MediaStream; }; declare type StatusMessages = 'media_aborted' | 'permission_denied' | 'no_specified_media_found' | 'media_in_use' | 'invalid_media_constraints' | 'no_constraints' | 'recorder_error' | 'idle' | 'acquiring_media' | 'delayed_start' | 'recording' | 'stopping' | 'stopped'; export declare const Recorder: ({ render, audio, video, onStop, blobPropertyBag, screen, mediaRecorderOptions, getStream, }: ReactMediaRecorderProps) => ReactElement>; export {};