///
///
import { EventEmitter } from 'events';
import * as Express from 'express';
import * as utils from '../utils';
import { MergedConfigOptions } from './mergedConfigOptions';
import { UserConfigOptions } from './userConfigOptions';
import { TrackedUserBase } from './trackedUserBase';
import { ActiveDomain } from './activeDomain';
import { TimelineItemUnion } from './timelineItemUnion';
import { AgentData } from './agentData';
export interface DjatyInterface extends EventEmitter {
isInitiated: boolean;
version: string;
init(options?: UserConfigOptions): this;
destroy(): this;
getOptions(): MergedConfigOptions;
requestHandler(): (req: Express.Request, res: Express.Response, next: Function) => void;
errorHandler(): (err: utils.RequestError, req: Express.Request, res: Express.Response, next: Function) => void;
trackBug(bug: Error | string): Promise<{}>;
setUser({userId, logon}: TrackedUserBase): void;
getDjatyHostName(): string | undefined;
trackTimelineItem(activeDomain: ActiveDomain | undefined, timelineItem: TimelineItemUnion): void;
addBeforeSubmissionHandler(cb: (data: AgentData, next: (data: AgentData) => void) => void): void;
addBeforeSubmissionContextHandler(cb: (data: AgentData, next: (data: AgentData) => void) => void): void;
addGlobalCustomData(data: any): void;
addContextCustomData(data: any): void;
}