import type { EventBase } from '../../event-bus/Types';
import type { AdQuartile } from '../base/AdQuartile';
import type { Ad, AdBreak, AdPod } from './Types';
export declare enum AdvertisingEvent {
    AdBreakAdded = "ad-break-added",
    AdBreakChanged = "ad-break-changed",
    AdBreakRemoved = "ad-break-removed",
    AdBreakStarted = "ad-break-started",
    AdBreakError = "ad-break-error",
    AdBreakFinished = "ad-break-finished",
    AdPodAdded = "ad-pod-added",
    AdPodRemoved = "ad-pod-removed",
    AdPodLoaded = "ad-pod-loaded",
    AdPodStarted = "ad-pod-started",
    AdPodError = "ad-pod-error",
    AdPodFinished = "ad-pod-finished",
    AdStarted = "ad-started",
    AdFinished = "ad-finished",
    AdSkippableStateChanged = "ad-skippable-state-changed",
    AdSkipped = "ad-skipped",
    AdError = "ad-error",
    AdClicked = "ad-clicked",
    AdQuartile = "ad-quartile",
    AdPlaying = "ad-playing",
    AdPaused = "ad-paused",
    AdProgress = "ad-progress",
    AdVolumeChanged = "ad-volume-changed"
}
export type AdBreakEvent = EventBase & {
    adBreak: AdBreak;
};
export type AdBreakErrorEvent = AdBreakEvent & {
    error: Error;
};
export type AdPodEvent = EventBase & {
    adPod: AdPod;
};
export type AdPodErrorEvent = AdPodEvent & {
    error: Error;
};
export type AdEvent = AdPodEvent & {
    ad: Ad;
};
export type AdErrorEvent = AdEvent & {
    error: Error;
};
export type AdQuartileEvent = AdEvent & {
    quartile: AdQuartile;
};
export type AdClickedEvent = AdEvent & {
    clickThroughUrl: string;
};
export type AdProgressEvent = AdEvent & {
    currentTime: number;
    duration: number;
};
export type AdVolumeChangedEvent = AdEvent & {
    volume: number;
};
export type AdvertisingEventMap = {
    [AdvertisingEvent.AdBreakAdded]: AdBreakEvent;
    [AdvertisingEvent.AdBreakChanged]: AdBreakEvent;
    [AdvertisingEvent.AdBreakRemoved]: AdBreakEvent;
    [AdvertisingEvent.AdBreakStarted]: AdBreakEvent;
    [AdvertisingEvent.AdBreakError]: AdBreakErrorEvent;
    [AdvertisingEvent.AdBreakFinished]: AdBreakEvent;
    [AdvertisingEvent.AdPodAdded]: AdPodEvent;
    [AdvertisingEvent.AdPodRemoved]: AdPodEvent;
    [AdvertisingEvent.AdPodLoaded]: AdPodEvent;
    [AdvertisingEvent.AdPodStarted]: AdPodEvent;
    [AdvertisingEvent.AdPodError]: AdPodErrorEvent;
    [AdvertisingEvent.AdPodFinished]: AdPodEvent;
    [AdvertisingEvent.AdStarted]: AdEvent;
    [AdvertisingEvent.AdFinished]: AdEvent;
    [AdvertisingEvent.AdSkippableStateChanged]: AdEvent;
    [AdvertisingEvent.AdSkipped]: AdEvent;
    [AdvertisingEvent.AdError]: AdErrorEvent;
    [AdvertisingEvent.AdClicked]: AdClickedEvent;
    [AdvertisingEvent.AdQuartile]: AdQuartileEvent;
    [AdvertisingEvent.AdPlaying]: AdEvent;
    [AdvertisingEvent.AdPaused]: AdEvent;
    [AdvertisingEvent.AdProgress]: AdProgressEvent;
    [AdvertisingEvent.AdVolumeChanged]: AdVolumeChangedEvent;
};
