/**
* HTML5 Video Player Adapter
*/
import { PlayerAdapter, VideoMetadata, PlayerState, Resolution, CMCDData } from "../types";
import { EventCollector } from "../core/EventCollector";
import { BatchManager } from "../core/BatchManager";
import { Logger } from "../utils/logger";
export declare class HTML5Adapter implements PlayerAdapter {
private video;
private eventCollector;
private batchManager;
private logger;
private metadata;
private readonly eventListeners;
private lastPlaybackTime;
private playingTime;
private watchTime;
private stallStartTime;
private viewStartTime;
private rebufferCount;
private rebufferDuration;
private quartileFired;
private heartbeatInterval;
private seekFrom;
private seekStartTime;
constructor(eventCollector: EventCollector, batchManager: BatchManager, logger: Logger);
/**
* Attach to HTML5 video element
*/
attach(player: HTMLVideoElement, metadata: VideoMetadata): void;
/**
* Detach from video element
*/
detach(): void;
private onVisibilityChange;
/**
* Attach all event listeners
*/
private attachEventListeners;
/**
* Helper to add event listener and track it
*/
private addEventListener;
/**
* Data Load Start event
*/
private onLoadStart;
/**
* Player Ready event
*/
private onPlayerReady;
/**
* On Can Play
*/
private onCanPlay;
/**
* Playing event
*/
private onPlaying;
/**
* Pause event
*/
private onPause;
/**
* Playing after waiting - Stall End
*/
private onPlayingAfterWait;
/**
* Ended event
*/
private onEnded;
/**
* Error event
*/
private onPlaybackError;
/**
* Seeking event
*/
private onSeeking;
/**
* Seeked event
*/
private onSeeked;
/**
* On Stall Start
*/
private onStallStart;
/**
* Playback rate change
*/
private onRateChange;
/**
* On Volume Change
*/
private onVolumeChange;
private onMoveAway;
private onMoveback;
/**
* Error handler
*/
private onError;
/**
* Time Update - Track quartiles
*/
private onTimeUpdate;
/**
* Heartbeat - Send periodic updates
*/
private startHeartbeat;
/**
* Stop heartbeat
*/
private stopHeartbeat;
/**
* Get current time in seconds
*/
getCurrentTime(): number;
/**
* Get duration in seconds
*/
getDuration(): number;
/**
* Get bitrate (HTML5 doesn't expose this directly)
*/
getBitrate(): number | null;
/**
* Get video resolution
*/
getVideoResolution(): Resolution | null;
/**
* Get player state
*/
getPlayerState(): PlayerState;
/**
* Get CMCD data (not available for plain HTML5)
*/
getCMCDData(): CMCDData | null;
/**
* Get buffer length in ms
*/
private getBufferLength;
}
//# sourceMappingURL=HTML5Adapter.d.ts.map