import GlitchKitMetadata from '../utility/GlitchKitMetadata';
import GlitchKitTraceability from '../utility/GlitchKitTraceability';
import IGlitchKitBaseErrorJson from './interfaces/GlitchKitBaseError.interface';
/**
 * Base class for all GlitchKit errors.
 * Provides common properties and methods for error handling.
 */
declare abstract class GlitchKitBaseError extends Error {
    private _traceability;
    private _metadata;
    private _errorCode?;
    private _timestamp;
    private _durationMs?;
    constructor(message: string, errorCode?: number);
    get traceability(): GlitchKitTraceability;
    set traceability(trace: GlitchKitTraceability);
    withTraceability(trace: GlitchKitTraceability): this;
    get metadata(): GlitchKitMetadata;
    set metadata(meta: GlitchKitMetadata);
    withMetadata(meta: GlitchKitMetadata): this;
    get errorCode(): number | undefined;
    set errorCode(code: number | undefined);
    withErrorCode(code: number): this;
    get timestamp(): Date;
    get durationMs(): number | undefined;
    set durationMs(val: number | undefined);
    withDurationMs(val: number): this;
    static isInstance(error: unknown): boolean;
    toJSON(): IGlitchKitBaseErrorJson;
    raise(): never;
}
export default GlitchKitBaseError;
