import React from 'react';
import { MarkdownEditorProps } from '../../MarkdownEditor';
export type RealtimeFollowMode = 'shell' | 'html' | 'markdown' | 'md' | 'default';
export interface DiffContent {
    original: string;
    modified: string;
}
export interface RealtimeFollowData {
    type: RealtimeFollowMode;
    content?: string | DiffContent;
    markdownEditorProps?: Partial<MarkdownEditorProps>;
    title?: string;
    subTitle?: string;
    icon?: React.ComponentType;
    /** 流式输出模式，同时传入时优先于 typewriter */
    streaming?: boolean;
    /** @deprecated 请使用 streaming */
    typewriter?: boolean;
    rightContent?: React.ReactNode;
    loadingRender?: React.ReactNode | (() => React.ReactNode);
    className?: string;
    style?: React.CSSProperties;
    errorRender?: React.ReactNode | (() => React.ReactNode);
    emptyRender?: React.ReactNode | (() => React.ReactNode);
    status?: 'loading' | 'done' | 'error';
    onBack?: () => void;
    customContent?: React.ReactNode | (() => React.ReactNode);
    viewMode?: 'preview' | 'code';
    defaultViewMode?: 'preview' | 'code';
    onViewModeChange?: (mode: 'preview' | 'code') => void;
    iframeProps?: React.IframeHTMLAttributes<HTMLIFrameElement>;
    labels?: {
        preview?: string;
        code?: string;
    };
    segmentedItems?: Array<{
        label: React.ReactNode;
        value: string;
    }>;
    segmentedExtra?: React.ReactNode;
}
/** 供测试覆盖使用：根据 type 将 content 转为编辑器所需字符串 */
export declare const getContentForEditor: (type: RealtimeFollowMode, content: string | DiffContent | undefined) => string;
/** 供测试覆盖使用：决定是否根据 type/htmlViewMode 更新编辑器内容 */
export declare const shouldUpdateEditor: (type: RealtimeFollowMode, htmlViewMode: 'preview' | 'code') => boolean;
/**
 * RealtimeFollow 组件
 *
 * 实时跟随显示，支持 HTML、Markdown、Shell 等类型
 *
 * @example
 * ```tsx
 * <RealtimeFollow data={{ type: 'shell', content: '$ ls' }} />
 * ```
 */
export declare const RealtimeFollow: React.FC<{
    data: RealtimeFollowData;
    htmlViewMode?: 'preview' | 'code';
    prefixCls?: string;
    hashId?: string;
}>;
/**
 * RealtimeFollowList 组件
 *
 * RealtimeFollow 的包装组件，管理视图模式状态
 */
export declare const RealtimeFollowList: React.FC<{
    data: RealtimeFollowData;
}>;
