import { Message, Method } from "../../mxp";
import { MxpMessage } from "../../mxp/MxpMessageChannel";
export declare enum EventType {
    In = "IN",
    Out = "OUT",
    Error = "ERROR"
}
export declare enum EventSubType {
    RECEIVED = "RECEIVED",
    IGNORED = "IGNORED",
    WARNING = "WARNING",
    SENDING = "SENDING",
    SENDING_ABORTED = "SENDING_ABORTED",
    SENDING_FAILED = "SENDING_FAILED",
    SENT = "SENT"
}
export interface MXPEventLog {
    Version: string;
    Events: string[][];
}
interface BaseMXPEvent {
    sessionId: string;
    localTimeStamp: string;
    headers: string;
    additionalInfo: string;
}
type ErrorEvent = Omit<BaseMXPEvent, "headers">;
interface IncomingOrOutgoingEvent extends BaseMXPEvent {
    messageType: Method;
}
interface SentOrReceivedMXPEvent extends BaseMXPEvent, IncomingOrOutgoingEvent {
    pubsubTimeStamp: string;
}
export declare class MxpEventsCollector {
    private mxpEventLog;
    constructor();
    addEvent(event: string[]): void;
    addIgnoredEventLog(): (incomingOrOutgoingEvent: IncomingOrOutgoingEvent) => void;
    addWarningEventLog(): (incomingOrOutgoingEvent: IncomingOrOutgoingEvent) => void;
    addSendingEventLogForMessage(outboundMessage: MxpMessage): void;
    addSentEventLogForMessage(outboundMessage: MxpMessage): void;
    addErrorEventLogForMessage(outboundMessage: MxpMessage): void;
    addReceivedEventLogForMessage(inboundMessage: Message): void;
    extractAdditionalInfoFromMessage(message: Message, channelId: string | undefined): string;
    addSendingEventLog: (incomingOrOutgoingEvent: IncomingOrOutgoingEvent) => void;
    addSentEventLog: (sentOrReceivedMXPEvent: SentOrReceivedMXPEvent) => void;
    addReceivedEventLog: (sentOrReceivedMXPEvent: SentOrReceivedMXPEvent) => void;
    addErrorEventLog: (errorEvent: ErrorEvent) => void;
    private addIgnoredWarningOrSendingEventLog;
    private addSentOrReceivedEventLog;
    get eventLog(): MXPEventLog;
    get events(): string[][];
}
export {};
