import { TypedEvents } from 'events-constructor'; export declare const HEALTH_SNAPSHOT_EVENT_NAME: "health-snapshot"; export declare const INBOUND_VIDEO_PROBLEM_DETECTED_EVENT_NAME: "inbound-video-problem-detected"; export declare const INBOUND_VIDEO_PROBLEM_RESOLVED_EVENT_NAME: "inbound-video-problem-resolved"; export declare const INBOUND_VIDEO_PROBLEM_RESET_EVENT_NAME: "inbound-video-problem-reset"; export declare const EVENT_NAMES: readonly ["health-snapshot", "inbound-video-problem-detected", "inbound-video-problem-resolved", "inbound-video-problem-reset"]; export type TProblemReason = 'invalid-inbound-frames' | 'no-inbound-video-traffic' | 'inbound-video-stalled'; export type TProblemResetCause = 'peerconnection:confirmed' | 'recv-session-started' | 'recv-session-ended' | 'recv-quality-changed' | 'failed' | 'ended'; export type THealthSnapshot = { isMutedMainVideoTrack: boolean; isInvalidInboundFrames: boolean; isNoInboundVideoTraffic: boolean; isInboundVideoStalled: boolean; }; export type TEventMap = { [HEALTH_SNAPSHOT_EVENT_NAME]: THealthSnapshot; [INBOUND_VIDEO_PROBLEM_DETECTED_EVENT_NAME]: THealthSnapshot & { consecutiveProblemSamplesCount: number; reason: TProblemReason; }; [INBOUND_VIDEO_PROBLEM_RESOLVED_EVENT_NAME]: THealthSnapshot & { reason: TProblemReason; }; [INBOUND_VIDEO_PROBLEM_RESET_EVENT_NAME]: { reason: TProblemReason; resetCause: TProblemResetCause; }; }; export type TEvents = TypedEvents; export declare const createEvents: () => TypedEvents;