import React from 'react';
export type VoiceMessageStatus = 'recording' | 'finish_record' | null;
export type SendMessageButtonPart = 'all' | 'audio' | 'send';
export interface AudioRecordInfo {
    base64: string;
    objectUrl: string;
    mime_type: string;
    size: number;
}
export interface SendMessageAndAudioRecordButtonProps {
    disabled?: boolean;
    listeningInSeconds: number | undefined;
    setListeningInSeconds: React.Dispatch<React.SetStateAction<number | undefined>>;
    onAudioRecorded?: (audioInfos: AudioRecordInfo) => void;
    inputValue: string;
    setInputValue: React.Dispatch<React.SetStateAction<string>>;
    onSendMessage?: (message: string) => void;
    onChangeCurrentStatusVoiceMessage: (status: VoiceMessageStatus) => void;
    currentStatusVoiceMessage: VoiceMessageStatus;
    onGetFinishDuration: (duration: string | null) => void;
    onCloseFileUploaded: () => void;
    disabledButtons: boolean;
    attachedFile?: File | null;
    registerStopRecording?: (handler: () => void, register: boolean) => void;
    /** Mobile: press-and-hold no mic para gravar; soltar para finalizar. */
    enableHoldToRecord?: boolean;
    /** Figma mobile: áudio na barra principal, send na coluna separada. */
    part?: SendMessageButtonPart;
    actionIconSize?: 'xs' | 'sm' | 'md';
}
export declare function SendMessageAndAudioRecordButton({ disabled, listeningInSeconds, setListeningInSeconds, onAudioRecorded, inputValue, setInputValue, onSendMessage, onChangeCurrentStatusVoiceMessage, currentStatusVoiceMessage, onGetFinishDuration, onCloseFileUploaded, disabledButtons, part, actionIconSize, attachedFile, registerStopRecording, enableHoldToRecord, }: SendMessageAndAudioRecordButtonProps): React.JSX.Element;
