import { Events } from 'events-constructor'; import { SESSION_JSSIP_EVENT_NAMES } from './eventNames'; import { AnswerOptions, ExtraHeaders, HoldOptions, MediaStreamTypes, NameAddrHeader, OnHoldResult, RTCPeerConnectionDeprecated, RTCSession, ReferOptions, RenegotiateOptions, SessionDirection, SessionStatus, TerminateOptions, URI, C as constants, TDegradationPreference } from '@krivega/jssip'; export type TEventHandlers = Record void>; declare class BaseSession implements RTCSession { originator: string; connection: RTCPeerConnectionDeprecated; events: Events; remote_identity: NameAddrHeader; mutedOptions: { audio: boolean; video: boolean; }; addTransceiver: jest.Mock, [_trackOrKind: MediaStreamTrack | "video" | "audio", _init?: RTCRtpTransceiverInit | undefined, _options?: { degradationPreference?: TDegradationPreference; } | undefined], any>; constructor({ originator, eventHandlers, remoteIdentity, }: { originator?: string; eventHandlers: TEventHandlers; remoteIdentity: NameAddrHeader; }); get contact(): string; get direction(): SessionDirection; get local_identity(): NameAddrHeader; get start_time(): Date; get end_time(): Date; get status(): SessionStatus; get C(): typeof SessionStatus; get causes(): typeof constants.causes; get id(): string; get data(): unknown; set data(_data: unknown); isInProgress(): boolean; isEnded(): boolean; isReadyToReOffer(): boolean; answer(_options?: AnswerOptions): void; terminate(_options?: TerminateOptions): void; sendInfo(_contentType: string, _body?: string, _options?: ExtraHeaders): Promise; hold(_options?: HoldOptions, _done?: VoidFunction): boolean; unhold(_options?: HoldOptions, _done?: VoidFunction): boolean; renegotiate(_options?: RenegotiateOptions, _done?: VoidFunction): Promise; isOnHold(): OnHoldResult; mute(_options?: MediaStreamConstraints): void; unmute(_options?: MediaStreamConstraints): void; isMuted(): MediaStreamTypes; refer(_target: URI | string, _options?: ReferOptions): false; resetLocalMedia(): void; addListener(_event: string | symbol, _listener: (...arguments_: unknown[]) => void): this; once(_event: string | symbol, _listener: (...arguments_: unknown[]) => void): this; removeListener(_event: string | symbol, _listener: (...arguments_: unknown[]) => void): this; off(eventName: string | symbol, _listener: (...arguments_: unknown[]) => void): this; removeAllListeners(_event?: string | symbol): this; setMaxListeners(_n: number): this; getMaxListeners(): number; listeners(_event: string | symbol): (() => void)[]; rawListeners(_event: string | symbol): (() => void)[]; emit(_event: string | symbol, ..._arguments_: unknown[]): boolean; listenerCount(_event: string | symbol): number; prependListener(_event: string | symbol, _listener: (...arguments_: unknown[]) => void): this; prependOnceListener(_event: string | symbol, _listener: (...arguments_: unknown[]) => void): this; eventNames(): (string | symbol)[]; initEvents(eventHandlers?: TEventHandlers): void; on: RTCSession['on']; trigger(eventName: (typeof SESSION_JSSIP_EVENT_NAMES)[number], data?: unknown): void; /** * sendDTMF * * @param {object} options - options * * @returns {undefined} */ sendDTMF(): void; isEstablished(): boolean; } export default BaseSession;