import React from 'react';
import type { AttachmentButtonProps } from '../AttachmentButton';
import type { AttachmentFile } from '../AttachmentButton/types';
import type { MarkdownInputFieldProps } from '../types/MarkdownInputFieldProps';
interface UseAttachmentListParams {
    attachment?: MarkdownInputFieldProps['attachment'];
    fileMap?: Map<string, AttachmentFile>;
    handleFileRemoval: (file: AttachmentFile) => Promise<void>;
    handleFileRetry: (file: AttachmentFile) => Promise<void>;
    updateAttachmentFiles: (fileMap?: Map<string, AttachmentFile>) => void;
}
/**
 * 附件列表渲染 Hook
 */
export declare const useAttachmentList: ({ attachment, fileMap, handleFileRemoval, handleFileRetry, updateAttachmentFiles, }: UseAttachmentListParams) => React.ReactNode;
interface UseBeforeToolsParams {
    beforeToolsRender?: MarkdownInputFieldProps['beforeToolsRender'];
    props: MarkdownInputFieldProps;
    isHover: boolean;
    isLoading: boolean;
}
/**
 * BeforeTools 渲染 Hook
 */
export declare const useBeforeTools: ({ beforeToolsRender, props, isHover, isLoading, }: UseBeforeToolsParams) => React.ReactNode;
interface UseSendActionsNodeParams {
    props: Pick<MarkdownInputFieldProps, 'attachment' | 'voiceRecognizer' | 'value' | 'disabled' | 'typing' | 'allowEmptySubmit' | 'actionsRender' | 'toolsRender' | 'sendButtonProps' | 'triggerSendKey'>;
    fileMap?: Map<string, AttachmentFile>;
    setFileMap?: (fileMap?: Map<string, AttachmentFile>) => void;
    supportedFormat: AttachmentButtonProps['supportedFormat'];
    fileUploadDone: boolean;
    fileUploadStatus: 'uploading' | 'done' | 'error';
    fileUploadSummary: {
        totalCount: number;
        doneCount: number;
        uploadingCount: number;
        errorCount: number;
    };
    recording: boolean;
    isLoading: boolean;
    collapseSendActions: boolean;
    uploadImage: (forGallery?: boolean) => Promise<void>;
    startRecording: () => Promise<void>;
    stopRecording: () => Promise<void>;
    sendMessage: () => Promise<void>;
    setIsLoading: (loading: boolean) => void;
    onStop?: () => void;
    setRightPadding: (padding: number) => void;
    baseCls: string;
    hashId: string;
}
/**
 * SendActions 节点渲染 Hook
 */
export declare const useSendActionsNode: ({ props: sendProps, fileMap, setFileMap, supportedFormat, fileUploadDone, fileUploadStatus, fileUploadSummary, recording, isLoading, collapseSendActions, uploadImage, startRecording, stopRecording, sendMessage, setIsLoading, onStop, setRightPadding, baseCls, hashId, }: UseSendActionsNodeParams) => React.ReactElement;
export {};
