import type { MenuProps } from 'antd';
import React from 'react';
export { SuggestionConnext, SuggestionContext } from './SuggestionContext';
/**
 * Suggestion 组件的 tagInputProps 类型定义
 * 从 MarkdownEditorProps['tagInputProps'] 内联，避免循环依赖
 */
interface SuggestionTagInputProps {
    enable?: boolean;
    placeholder?: string;
    type?: 'panel' | 'dropdown';
    items?: Array<{
        key: string | number;
        label: string;
    }> | ((context: Record<string, any>) => Promise<Array<{
        key: string | number;
        label: string;
    }>>);
    open?: boolean;
    onOpenChange?: (open: boolean) => void;
    dropdownRender?: (content: React.ReactNode, props: Record<string, any>) => React.ReactNode;
    /**
     * 直接透传给 antd `Dropdown.menu`，与 antd 类型保持一致。
     * 之前误标为 `React.ReactNode` 导致下游使用处 TS 报错。
     */
    menu?: MenuProps;
    dropdownStyle?: React.CSSProperties;
    notFoundContent?: React.ReactNode;
    /**
     * 标签输入值变更回调。
     * 第二参数为调用方上下文（如外层 RenderProps），按需透传，未使用时可忽略。
     */
    onChange?: (value: string, props?: any) => void;
}
/**
 * Suggestion 组件 - 自动完成建议组件
 *
 * 该组件提供输入框的自动完成功能，支持静态建议列表和动态加载建议。
 * 当用户输入时显示相关建议，支持键盘导航和点击选择。
 *
 * @component
 * @description 自动完成建议组件，提供输入建议和选择功能
 * @param {Object} props - 组件属性
 * @param {React.ReactNode} props.children - 子组件，通常是输入框
 * @param {TagInputProps} [props.tagInputProps] - 标签输入配置
 * @param {Array|Function} [props.tagInputProps.items] - 建议项列表或加载函数
 * @param {boolean} [props.tagInputProps.open] - 是否显示下拉菜单
 * @param {(open: boolean) => void} [props.tagInputProps.onOpenChange] - 下拉菜单状态变化回调
 * @param {Function} [props.tagInputProps.dropdownRender] - 自定义下拉菜单渲染
 * @param {React.ReactNode} [props.tagInputProps.menu] - 自定义菜单内容
 * @param {React.CSSProperties} [props.tagInputProps.dropdownStyle] - 下拉菜单样式
 * @param {React.ReactNode} [props.tagInputProps.notFoundContent] - 无数据时显示的内容
 *
 * @example
 * ```tsx
 * <Suggestion
 *   tagInputProps={{
 *     items: [
 *       { key: 'item1', label: '建议项1' },
 *       { key: 'item2', label: '建议项2' }
 *     ],
 *     onOpenChange: (open) => console.log('下拉状态:', open)
 *   }}
 * >
 *   <Input placeholder="请输入..." />
 * </Suggestion>
 * ```
 *
 * @returns {React.ReactElement} 渲染的自动完成建议组件
 *
 * @remarks
 * - 支持静态建议列表和动态加载
 * - 提供键盘导航功能
 * - 支持自定义下拉菜单渲染
 * - 支持加载状态显示
 * - 自动处理选择事件
 * - 支持自定义样式和内容
 */
export declare const Suggestion: React.FC<{
    children: React.ReactNode;
    tagInputProps?: SuggestionTagInputProps;
}>;
