import { InstrumentationBase, InstrumentationConfig } from '@opentelemetry/instrumentation';
import { CoralogixRumLabels } from '../types';
export declare const ERROR_INSTRUMENTATION_NAME = "errors";
export declare const ErrorAttributes: {
    TYPE: string;
    STACK: string;
    MESSAGE: string;
    DATA: string;
};
export declare enum ErrorSource {
    CONSOLE = "console",
    WINDOW = "window",
    UNHANDLED_REJECTION = "unhandledrejection",
    DOCUMENT = "document",
    CAPTURED = "captured",
    WEB_WORKER = "web_worker"
}
interface CoralogixErrorInstrumentationConfig extends InstrumentationConfig {
    ignoreErrors?: Array<string | RegExp>;
}
export declare class CoralogixErrorInstrumentation extends InstrumentationBase {
    constructor(config: CoralogixErrorInstrumentationConfig);
    protected init(): void;
    enable(): void;
    disable(): void;
    report(source: ErrorSource, arg: string | Error | Event | ErrorEvent | Array<any>): void;
    parseErrorObject: (obj: any) => string;
    reportError(source: ErrorSource, err: Error, customData?: unknown, labels?: CoralogixRumLabels): Promise<void>;
    private reportString;
    private reportErrorEvent;
    private reportEvent;
    private createSpan;
    private getPossibleEventMessage;
}
export {};
