/// import { EventEmitter } from 'events'; import { ISession } from '../contracts'; import { AbstractClient } from './client'; import { AbstractGateway } from './gateway'; export declare abstract class AbstractSession, TClient extends AbstractClient, TGateway extends AbstractGateway> extends EventEmitter implements ISession { static add(session: ISession): void; static get, C extends AbstractClient, G extends AbstractGateway>(id: string): AbstractSession; static remove(id: string): void; private static cache; ID: string; private _client; private _gateway; private _backgroundTimerID; get client(): TClient; set client(val: TClient); get gateway(): TGateway; set gateway(val: TGateway); constructor(client: TClient, gateway?: TGateway); end(code?: number, message?: string): void; abstract get backgroundMins(): number; }