import type { SpyConsole, PageSpyPlugin, OnInitParams } from '@huolala-tech/page-spy-types/index';
import { InitConfig } from '../config';
type GlobalErrorHandler = (error: Error) => void;
type GlobalRejectionHandler = (event: {
    reason?: any;
}) => void;
/** Error 插件：捕获未处理异常和 Promise rejection，并复用 console 通道上报。 */
export default class ErrorPlugin implements PageSpyPlugin {
    /** 插件名称。 */
    name: string;
    static hasInitd: boolean;
    /** 原始全局 onerror，reset 时恢复并在捕获后继续调用。 */
    originOnError: GlobalErrorHandler | null;
    /** 原始全局 onunhandledrejection，reset 时恢复并在捕获后继续调用。 */
    originOnUnhandledRejection: GlobalRejectionHandler | null;
    $pageSpyConfig: InitConfig | null;
    private errorHandlerRef;
    private rejectionHandlerRef;
    /** 初始化全局错误监听。 */
    onInit({ config }: OnInitParams<InitConfig>): void;
    /** 捕获运行时未处理异常，优先使用 addEventListener，兼容 onerror。 */
    onUncaughtError(): void;
    /** 捕获未处理 Promise rejection，兼容事件监听和全局回调两种能力。 */
    onUnhandledRejectionError(): void;
    /** 将不同形态的错误对象整理成 PageSpy console error 消息。 */
    errorHandler(error: Error | string | any): void;
    /** 移除全局监听并恢复宿主原有错误处理器。 */
    onReset(): void;
    /** 上报错误消息，允许用户 dataProcessor 拦截或加工。 */
    sendMessage(data: any, errorDetail: SpyConsole.DataItem['errorDetail'] | null): void;
}
export {};
