import React from 'react';
import type { FileUploadManagerReturn } from '../FileUploadManager';
/**
 * 按钮颜色配置
 */
export type SendButtonColors = {
    /** 默认状态下的图标颜色 */
    icon?: string;
    /** Hover 状态下的图标颜色 */
    iconHover?: string;
    /** 默认状态下的背景颜色 */
    background?: string;
    /** Hover 状态下的背景颜色 */
    backgroundHover?: string;
};
/**
 * 按钮定制化属性
 */
export type SendButtonCustomizationProps = {
    compact?: boolean;
    colors?: SendButtonColors;
    disabled?: boolean;
};
/**
 * 解析发送按钮的最终禁用状态：用户显式传入优先，否则按上传状态判断
 */
export declare function resolveSendDisabled(sendButtonProps: SendButtonCustomizationProps | undefined, fileUploadStatus: FileUploadManagerReturn['fileUploadStatus'] | undefined): boolean;
/**
 * Props for the SendButton component.
 */
type SendButtonProps = {
    /**
     * 指示按钮是可以发送状态
     * Indicates whether the button is in a sendable state.
     */
    isSendable: boolean;
    /**
     * 指示用户是否正在输入
     * Indicates whether the user is currently typing.
     */
    typing: boolean;
    /**
     * 点击按钮时触发的回调函数
     * Callback function triggered when the button is clicked.
     */
    onClick: () => void;
    /**
     * 应用于按钮的CSS样式
     * CSS styles to be applied to the button.
     */
    style?: React.CSSProperties;
    /**
     * 按钮初始化时触发的回调函数
     * Callback function triggered when the button is initialized.
     */
    onInit?: () => void;
    /**
     * 是否使用紧凑模式显示按钮
     * Whether to display the button in compact mode.
     */
    compact?: boolean;
    /**
     * 按钮是否禁用
     * Whether the button is disabled.
     */
    disabled?: boolean;
    /**
     * 自定义按钮颜色
     * Custom colors for the button.
     */
    colors?: SendButtonColors;
    /**
     * 触发发送的快捷键
     */
    triggerSendKey?: 'Enter' | 'Mod+Enter';
};
/**
 * SendButton 组件 - 发送按钮组件
 *
 * 该组件提供一个可点击的发送按钮，根据不同状态（悬停、禁用、输入中）
 * 呈现不同的视觉效果和动画。支持紧凑模式和自定义样式。
 *
 * @component
 * @description 发送按钮组件，支持多种状态和动画效果
 * @param {SendButtonProps} props - 组件属性
 * @param {boolean} props.isSendable - 是否处于可发送状态
 * @param {boolean} props.disabled - 指示按钮是否禁用
 * @param {boolean} props.typing - 指示是否处于输入状态
 * @param {() => void} props.onClick - 点击按钮时的回调函数
 * @param {React.CSSProperties} [props.style] - 应用于按钮容器的自定义样式
 * @param {() => void} [props.onInit] - 组件初始化时调用的可选回调函数
 * @param {boolean} [props.compact] - 是否使用紧凑模式样式
 * @param {SendButtonColors} [props.colors] - 自定义按钮颜色
 *
 * @example
 * ```tsx
 * <SendButton
 *   isSendable
 *   disabled={false}
 *   typing={false}
 *   onClick={() => console.log('发送消息')}
 *   compact={false}
 *   colors={{
 *     icon: '#666',
 *     iconHover: '#fff',
 *     background: '#f0f0f0',
 *     backgroundHover: '#1890ff'
 *   }}
 * />
 * ```
 *
 * @returns {React.ReactElement|null} 渲染的发送按钮组件，SSR环境下返回null
 *
 * @remarks
 * - 支持悬停、禁用、输入中等多种状态
 * - 提供流畅的动画效果
 * - 支持紧凑模式显示
 * - 支持自定义颜色配置
 * - 在SSR环境下不渲染
 */
export declare const SendButton: React.FC<SendButtonProps>;
export {};
