import { MediaRecorderController } from '../classes';
import type { LocalVoiceRecordingAttachment } from 'stream-chat';
import type { CustomAudioRecordingConfig, MediaRecordingState } from '../classes';
import type { MessageInputContextValue } from '../../../context';
export type RecordingController = {
    completeRecording: () => void;
    permissionState?: PermissionState;
    recorder?: MediaRecorderController;
    recording?: LocalVoiceRecordingAttachment;
    recordingState?: MediaRecordingState;
};
type UseMediaRecorderParams = Pick<MessageInputContextValue, 'asyncMessagesMultiSendEnabled' | 'handleSubmit'> & {
    enabled: boolean;
    generateRecordingTitle?: (mimeType: string) => string;
    recordingConfig?: CustomAudioRecordingConfig;
};
export declare const useMediaRecorder: ({ asyncMessagesMultiSendEnabled, enabled, generateRecordingTitle, handleSubmit, recordingConfig, }: UseMediaRecorderParams) => RecordingController;
export {};
