import { Obj } from '../entity.js';
import { InstanceObjOptions, ObjOptions } from './base.js';
export interface EventObjOptions extends ObjOptions {
    schema?: unknown;
}
export declare class EventObj extends Obj<'Event'> {
    readonly typeOf: "Event";
    schema?: unknown;
    constructor(opts: EventObjOptions);
}
export declare function isEventObj(obj: any): obj is EventObj;
export declare class EventInstanceObj extends Obj<'EventInstance'> {
    readonly typeOf: "EventInstance";
    constructor(opts: InstanceObjOptions);
    get instanceOfId(): string | undefined;
}
export declare function isEventInstanceObj(obj: any): obj is EventInstanceObj;
export declare class ErrorEventObj extends Obj<'ErrorEvent'> {
    readonly typeOf: "ErrorEvent";
    constructor(opts: ObjOptions);
}
export declare function isErrorEventObj(obj: any): obj is ErrorEventObj;
export interface ErrorEventInstanceObjOptions extends InstanceObjOptions {
    message: string;
    code?: string;
    stack?: string;
    cause?: Error;
    severity?: 'error' | 'warning' | 'info' | 'critical';
}
export declare class ErrorEventInstanceObj extends Obj<'ErrorEventInstance'> {
    readonly typeOf: "ErrorEventInstance";
    message: string;
    code?: string;
    stack?: string;
    cause?: Error;
    severity: 'error' | 'warning' | 'info' | 'critical';
    /** Error occurrence time is tracked via createdAt */
    constructor(opts: ErrorEventInstanceObjOptions);
    get instanceOfId(): string | undefined;
}
export declare function isErrorEventInstanceObj(obj: any): obj is ErrorEventInstanceObj;
