export interface GoogleAdsConfig {
    adTagUrl: string;
    midrollTimes?: number[];
    liveAdBreakMode?: 'periodic' | 'manual';
    periodicAdInterval?: number;
    syncToLiveEdge?: boolean;
    pauseStreamDuringAd?: boolean;
    liveEdgeOffset?: number;
    companionAdSlots?: Array<{
        containerId: string;
        width: number;
        height: number;
    }>;
    onAdStart?: () => void;
    onAdEnd?: () => void;
    onAdError?: (error: any) => void;
    onAllAdsComplete?: () => void;
    onAdCuePoints?: (cuePoints: number[]) => void;
}
export declare class GoogleAdsManager {
    private video;
    private adContainer;
    private config;
    private adsManager;
    private adsLoader;
    private adDisplayContainer;
    private isAdPlaying;
    private isMuted;
    private unmuteButton;
    private adProgressBar;
    private adProgressInterval;
    private lastAdTime;
    private periodicAdCheckInterval;
    private pendingAdRequest;
    private focusHandler;
    private visibilityHandler;
    private timeupdateHandler;
    private volumechangeHandler;
    private triggeredMidrollTimes;
    constructor(video: HTMLVideoElement, adContainer: HTMLElement, config: GoogleAdsConfig);
    private setupFocusHandler;
    initialize(): Promise<void>;
    private loadIMASDK;
    private setupAdsLoader;
    private setupMidrollTriggers;
    setupPeriodicAds(): void;
    private triggerPeriodicAd;
    requestAds(): void;
    initAdDisplayContainer(): void;
    private onAdsManagerLoaded;
    private setupAdsManagerListeners;
    private onAdError;
    pause(): void;
    resume(): void;
    skip(): void;
    resize(width: number, height: number, viewMode?: any): void;
    setVolume(volume: number): void;
    isPlayingAd(): boolean;
    private showUnmuteButton;
    private toggleAdMute;
    private updateMuteButtonUI;
    private resumeAdPlayback;
    private hideUnmuteButton;
    private showAdProgressBar;
    private hideAdProgressBar;
    destroy(): void;
}
//# sourceMappingURL=GoogleAdsManager.d.ts.map