import React from 'react';
import { EditingProps, IConfigureOption, IInputMessageFile, IInputMessageVoiceFile, InputMessageErrorEvent } from './types';
import { type MessageSubmitKey } from './use-input';
export type InputMessageChangeEventHandler = (message: string) => unknown;
export type InputMessageFilesChangeEventHandler = (files: IInputMessageFile[]) => unknown;
export type InputMessageVoiceFilesChangeEventHandler = (files: IInputMessageVoiceFile[]) => unknown;
export type InputMessageSendEventHandler = (message: string, files: IInputMessageFile[]) => unknown;
export type InputMessageVoiceEventHandler = (blob: Blob) => unknown;
export type { MessageSubmitKey };
export interface InputMessageProps extends Omit<React.ComponentProps<'textarea'>, 'value' | 'onChange'> {
    className?: string;
    placeholder?: string;
    editingProps?: EditingProps;
    message?: string;
    hiddenSend?: boolean;
    files?: IInputMessageFile[];
    hideUploadFile?: boolean;
    uploadFileLimit?: number;
    uploadFileDisabled?: boolean;
    uploadFileAccept?: string;
    uploadFileText?: string;
    imageRequiredText?: string;
    sendDisabled?: boolean;
    textAreaDisabled?: boolean;
    messageSubmitKey?: MessageSubmitKey;
    concatenateText?: React.ReactNode;
    concatenateVideo?: React.ReactNode;
    autoFocus?: boolean;
    voice?: boolean;
    onChange?: InputMessageChangeEventHandler;
    onFilesChange?: InputMessageFilesChangeEventHandler;
    onVoiceFilesChange?: InputMessageVoiceFilesChangeEventHandler;
    onTextAreaChange?: React.ChangeEventHandler<HTMLTextAreaElement>;
    onSend?: InputMessageSendEventHandler;
    handleImageClick?: (payload: IInputMessageFile) => IInputMessageFile;
    emitError?(event: InputMessageErrorEvent): void;
    configureOptions?: IConfigureOption[];
    actions?: React.ReactNode;
    attachAriaLabel?: string;
    sendAriaLabel?: string;
    saveAriaLabel?: string;
    voiceAriaLabel?: string;
    stopVoiceAriaLabel?: string;
    pauseVoiceAriaLabel?: string;
    resumeVoiceAriaLabel?: string;
    cancelEditAriaLabel?: string;
    deleteVoiceAriaLabel?: string;
    deleteFileAriaLabel?: string;
}
export declare const InputMessage: React.FC<InputMessageProps>;
export * from './types';
export * from './input-files';
