import type { ContextHaving } from '../../../../framework-types/execution-context/Types';
import type { CoreEffects, CoreExportNames, CoreStateAtoms } from '../../core/Types';
import type { CoreUtils } from '../../core/utils/Types';
import type { SourceStateAtom } from '../../source/atoms/SourceStateAtom';
import type { SourceExportNames } from '../../source/Types';
import type { ContextWithState } from '../../Types';
import type { AdSchedule } from './AdSchedule';
import type { BaseAdAtom, createBaseAdAtom } from './BaseAdAtom';
import type { createBaseAdBreakAtom } from './BaseAdBreakAtom';
export declare enum AdType {
    VAST = "vast",
    VMAP = "vmap"
}
export declare enum AdQuartile {
    FirstQuartile = "first-quartile",
    Midpoint = "midpoint",
    ThirdQuartile = "third-quartile"
}
export declare enum BaseAdBreakState {
    Scheduled = "scheduled",
    Loaded = "loaded",
    Playing = "playing",
    Error = "error",
    Completed = "completed"
}
export declare enum BaseAdState {
    Scheduled = "scheduled",
    Playing = "playing",
    Completed = "completed",
    Skipped = "skipped",
    Error = "error"
}
export type AdvertisingBasePackageDependencies = {
    [CoreExportNames.CoreEffects]: CoreEffects;
    [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
    [CoreExportNames.Utils]: CoreUtils;
    [SourceExportNames.SourceState]: SourceStateAtom;
};
export declare enum AdvertisingBaseExportNames {
    AdType = "ad-type",
    AdQuartile = "ad-quartile",
    BaseAdBreakState = "base-ad-break-state",
    BaseAdState = "base-ad-state",
    CreateBaseAdBreak = "create-base-ad-break",
    CreateBaseAd = "create-base-ad"
}
export type AdvertisingBasePackageExports = {
    [AdvertisingBaseExportNames.AdType]: typeof AdType;
    [AdvertisingBaseExportNames.AdQuartile]: typeof AdQuartile;
    [AdvertisingBaseExportNames.BaseAdBreakState]: typeof BaseAdBreakState;
    [AdvertisingBaseExportNames.BaseAdState]: typeof BaseAdState;
    [AdvertisingBaseExportNames.CreateBaseAdBreak]: typeof createBaseAdBreakAtom;
    [AdvertisingBaseExportNames.CreateBaseAd]: typeof createBaseAdAtom;
};
export type AdvertisingBaseContext = ContextHaving<AdvertisingBasePackageDependencies, AdvertisingBasePackageExports, ContextWithState>;
export declare enum ContentSourceExportNames {
    AdSchedule = "ad-schedule"
}
export type ContentSourceAdExports = {
    [ContentSourceExportNames.AdSchedule]: AdSchedule;
};
export declare enum AdSourceExportNames {
    AssociatedAd = "associated-ad"
}
export type AdSourceAdExports = {
    [AdSourceExportNames.AssociatedAd]: BaseAdAtom;
};
