import * as React from 'react';
import BaseComponent from '../_base/baseComponent';
import PropTypes from 'prop-types';
import '@douyinfe/semi-foundation/lib/cjs/aiChatDialogue/aiChatDialogue.css';
import DialogueFoundation, { DialogueAdapter, Message } from '@douyinfe/semi-foundation/lib/cjs/aiChatDialogue/foundation';
import { AIChatDialogueProps } from './interface';
export * from '@douyinfe/semi-foundation/lib/cjs/aiChatDialogue/foundation';
export * from './interface';
export interface AIChatDialogueStates {
    chats?: Message[];
    selectedIds: Set<string>;
    cacheHints?: string[];
    backBottomVisible: boolean;
    wheelScroll: boolean;
}
declare class AIChatDialogue extends BaseComponent<AIChatDialogueProps, AIChatDialogueStates> {
    static __SemiComponentName__: string;
    static Reasoning: (props: import("./widgets/contentItem/reasoning").ReasoningWidgetProps) => React.JSX.Element;
    static Step: (props: import("./widgets/contentItem/dialogueStep").DialogueStepWidgetProps) => React.JSX.Element;
    static Annotation: (props: import("./widgets/contentItem/annotation").AnnotationWidgetProps) => React.JSX.Element;
    static defaultComponents: {
        code: (props: React.PropsWithChildren<{
            className: string;
        }>) => React.JSX.Element;
    };
    foundation: DialogueFoundation;
    containerRef: React.RefObject<HTMLDivElement>;
    scrollTargetRef: React.RefObject<HTMLElement>;
    wheelEventHandler: any;
    static propTypes: {
        align: PropTypes.Requireable<string>;
        chats: PropTypes.Requireable<PropTypes.InferProps<{
            id: PropTypes.Validator<string>;
            content: PropTypes.Requireable<NonNullable<string | any[]>>;
            output_text: PropTypes.Requireable<string>;
            role: PropTypes.Validator<string>;
            name: PropTypes.Requireable<string>;
            createdAt: PropTypes.Requireable<number>;
            updatedAt: PropTypes.Requireable<number>;
            model: PropTypes.Requireable<string>;
            status: PropTypes.Requireable<string>;
        }>[]>;
        className: PropTypes.Requireable<string>;
        disabledFileItemClick: PropTypes.Requireable<boolean>;
        hints: PropTypes.Requireable<string[]>;
        hintCls: PropTypes.Requireable<string>;
        hintStyle: PropTypes.Requireable<object>;
        selecting: PropTypes.Requireable<boolean>;
        markdownRenderProps: PropTypes.Requireable<object>;
        messageEditRender: PropTypes.Requireable<(...args: any[]) => any>;
        mode: PropTypes.Requireable<string>;
        roleConfig: PropTypes.Requireable<object>;
        style: PropTypes.Requireable<object>;
        dialogueRenderConfig: PropTypes.Requireable<PropTypes.InferProps<{
            renderDialogueAction: PropTypes.Requireable<(...args: any[]) => any>;
            renderDialogueAvatar: PropTypes.Requireable<(...args: any[]) => any>;
            renderDialogueContent: PropTypes.Requireable<(...args: any[]) => any>;
            renderDialogueTitle: PropTypes.Requireable<(...args: any[]) => any>;
            renderFullDialogue: PropTypes.Requireable<(...args: any[]) => any>;
        }>>;
        renderHintBox: PropTypes.Requireable<(...args: any[]) => any>;
        renderDialogueContentItem: PropTypes.Requireable<object>;
        onAnnotationClick: PropTypes.Requireable<(...args: any[]) => any>;
        onChatsChange: PropTypes.Requireable<(...args: any[]) => any>;
        onFileClick: PropTypes.Requireable<(...args: any[]) => any>;
        onImageClick: PropTypes.Requireable<(...args: any[]) => any>;
        onHintClick: PropTypes.Requireable<(...args: any[]) => any>;
        onMessageBadFeedback: PropTypes.Requireable<(...args: any[]) => any>;
        onMessageCopy: PropTypes.Requireable<(...args: any[]) => any>;
        onMessageDelete: PropTypes.Requireable<(...args: any[]) => any>;
        onMessageEdit: PropTypes.Requireable<(...args: any[]) => any>;
        onMessageGoodFeedback: PropTypes.Requireable<(...args: any[]) => any>;
        onMessageReset: PropTypes.Requireable<(...args: any[]) => any>;
        onMessageShare: PropTypes.Requireable<(...args: any[]) => any>;
        onReferenceClick: PropTypes.Requireable<(...args: any[]) => any>;
        onSelect: PropTypes.Requireable<(...args: any[]) => any>;
        showReset: PropTypes.Requireable<boolean>;
        showReference: PropTypes.Requireable<boolean>;
        escapeHtml: PropTypes.Requireable<boolean>;
    };
    static defaultProps: any;
    constructor(props: AIChatDialogueProps);
    get adapter(): DialogueAdapter<AIChatDialogueProps, AIChatDialogueStates>;
    static getDerivedStateFromProps(nextProps: AIChatDialogueProps, prevState: AIChatDialogueStates): any;
    componentDidMount(): void;
    componentDidUpdate(prevProps: Readonly<AIChatDialogueProps>, prevState: Readonly<AIChatDialogueStates>, snapshot?: any): void;
    componentWillUnmount(): void;
    selectAll: () => void;
    deselectAll: () => void;
    onSelectOrRemove(isChecked: boolean, item: string): void;
    scrollToBottom: (animation: boolean) => void;
    scrollToTop: (animation: boolean) => void;
    containerScroll: (e: React.UIEvent<HTMLDivElement>) => void;
    render(): React.JSX.Element;
}
export default AIChatDialogue;
