import { LogResponseStatus, EventMessage, TypeMessageMetadata } from "./model/EventMessage"; import { EventLoggingServiceClient } from "./transport/EventLoggingServiceClient"; /** * Describes Event Recorder interface * @param recorder instance of EventLogingServiceClient or another recorder * @param preProcess preprocessing method with null implementation in the current release * @param postProcess postprocessing method with null implementation in the current release * @param record the method that records the event depending on the recorder implementation */ interface IEventRecorder { recorder: EventLoggingServiceClient | Function; preProcess: (event: EventMessage) => EventMessage | TypeMessageMetadata; postProcess?: (result: any) => any; record: (event: EventMessage, doLog?: boolean, callback?: (result: any) => void) => Promise; } declare type LogResponseType = LogResponseTypeAccepted | LogResponseTypeError; declare type LogResponseTypeAccepted = { status: LogResponseStatus.accepted; }; declare type LogResponseTypeError = { status: LogResponseStatus; error: any; }; declare class DefaultLoggerRecorder implements IEventRecorder { recorder: Function; constructor(recorder?: EventLoggingServiceClient); preProcess: (event: EventMessage) => EventMessage | TypeMessageMetadata; postProcess: (result: any) => any; record(event: EventMessage, doLog?: boolean): Promise; } declare class DefaultSidecarRecorder implements IEventRecorder { recorder: EventLoggingServiceClient; constructor(recorder: EventLoggingServiceClient); preProcess: (event: EventMessage) => EventMessage | TypeMessageMetadata; logLoad: (event: EventMessage) => EventMessage | TypeMessageMetadata; postProcess: (result: any) => any; record(event: EventMessage, doLog?: boolean): Promise; } declare class DefaultSidecarRecorderAsync implements IEventRecorder { recorder: EventLoggingServiceClient; constructor(recorder: EventLoggingServiceClient); preProcess: (event: EventMessage) => EventMessage; logLoad: (event: EventMessage) => EventMessage | TypeMessageMetadata; record(event: EventMessage, doLog?: boolean, callback?: (result: any) => void): Promise; } export { DefaultLoggerRecorder, DefaultSidecarRecorder, DefaultSidecarRecorderAsync, IEventRecorder, LogResponseType, LogResponseTypeAccepted, LogResponseTypeError };