import React from 'react';
import { Terminal as XTerm } from 'xterm';
import 'xterm/css/xterm.css';
import './index.less';
export interface TerminalTooltips {
    pause?: string;
    resume?: string;
    refresh?: string;
    download?: string;
}
export interface TerminalProps {
    /** 交互模式：终端或只读日志 */
    mode?: 'terminal' | 'log';
    /** 页面协议，默认当前页 `location.protocol` */
    protocol?: 'http:' | 'https:';
    /** 主机名，默认 `location.hostname` */
    hostname?: string;
    /** 端口，默认由当前页协议推导 */
    port?: string;
    /** WebSocket 路径，如 `/wscaas/terminal` */
    apiUrl: string;
    /** 查询参数，如 `{ clusterId: 'x' }` */
    params?: Record<string, string | number | boolean>;
    /** 作为 WebSocket 子协议传入（与后端约定一致时保留） */
    token?: string;
    /** 日志模式下的日志类型 */
    logType?: string;
    /** 日志模式是否初始化即开 WebSocket */
    initWs?: boolean;
    /** 日志模式关闭实时后，用于拉取静态日志 */
    refreshMethod?: () => Promise<string>;
    /**
     * 自定义处理服务端消息；默认解析 JSON `{ type, text }`，`TERMINAL_PRINT` 时 `term.write(text)`
     */
    onMessage?: (term: XTerm, e: MessageEvent) => void;
    /**
     * @deprecated 拼写错误，请使用 `onMessage`
     */
    onMessgae?: (term: XTerm, e: MessageEvent) => void;
    /** 覆盖日志条 Tooltip 文案 */
    tooltips?: Partial<TerminalTooltips>;
}
declare const Terminal: React.FC<TerminalProps>;
export default Terminal;
