/// import { IAddress, IEvent, IMiddlewareMap, Session } from "botbuilder"; import { EventEmitter } from "events"; import { Blob } from './serialization'; export declare const LOGGER_SERVICE_ID: unique symbol; export interface LogEntry { date: Date; conversation: Partial; type: string; data: any; } export interface BotLogWriterOptions { /** Number of simultaneous writes before queueing (default: 1) */ concurrency?: number; /** Any properties that should NOT be visible in logs (e.g. "state.user.private.password"). For supported syntax, see `lodash.get` module. */ maskedProperties?: string[]; } export interface WriteOperation { value: any; blobs: Blob[]; } export interface DocumentWriter { write: (op: WriteOperation, callback: DocumentWriteCallback) => void; } export interface BlobWriter { write: (blob: Blob, callback: BlobWriteCallback) => void; locate: (blob: Blob) => string; } export declare type LogWriter = (type: string, data: any) => void; export declare type DocumentWriteCallback = (err?: Error) => void; export declare type BlobWriteCallback = (err?: Error) => void; export declare function getLogger(session: Session): LogWriter; export declare function writeLog(session: Session, type: string, data: any): void; export declare class BaseBotLogger implements IMiddlewareMap { protected documentWriter: DocumentWriter; protected blobWriter: BlobWriter; protected loggerOptions: BotLogWriterOptions; events: EventEmitter; private documentQueue; private blobQueue; constructor(documentWriter: DocumentWriter, blobWriter: BlobWriter, loggerOptions: BotLogWriterOptions); receive(event: IEvent, next: () => void): void; send(event: IEvent, next: () => void): void; botbuilder(session: Session, next: () => void): void; write(session: Session, type: string, data: any): void; private enqueue; private onWrite; private applyMask; }