import { AjaxError } from 'rxjs/ajax';
import { ErrorMonitorRecord } from '../rpc/error-monitor/rpc-observable-error-monitor-model';
import { Rpc } from '../rpc/rpc';
/**
 * Error Monitor class.
 */
export declare class ErrorMonitor {
    private static monitorName;
    private static instance;
    private rpc;
    private rpcObservableErrorMonitorClient;
    private rpcObservableErrorMonitorServer;
    private enabled;
    private shellVersionChecked;
    private check;
    /**
     * Gets the current ErrorMonitor instance.
     */
    static get current(): ErrorMonitor;
    /**
     * Start and register the check function on shell.
     *
     * @param check the check function.
     */
    startOnShell(check: (record: ErrorMonitorRecord) => void): void;
    /**
     * Start error monitoring if it was stopped once.
     */
    startOnModule(): void;
    /**
     * Stop error monitoring if it's started. This works on both shell and module.
     */
    stop(): void;
    /**
     * Register rpc and start error monitoring.
     *
     * @param rpc the rpc.
     */
    registerRpc(rpc: Rpc): void;
    /**
     * Report the error from the ajax error object.
     *
     * @param error the ajax error object.
     */
    reportErrorFromAjax(error: AjaxError): void;
    /**
     * Report the error to shell.
     *
     * @param error the error monitor record.
     */
    reportError(error: ErrorMonitorRecord): void;
    /**
     * Update the monitoring state.
     */
    private updateMonitor;
    /**
     * Register Http monitoring.
     */
    private registerHttp;
}
