import type { ApiManager } from '../../../../../framework-types/api-manager/ApiManager';
import type { EmptyObject } from '../../../../../framework-types/BaseTypes';
import type { ContextHaving, ContextUsing } from '../../../../../framework-types/execution-context/Types';
import type { StoreEffectFactory } from '../../../core/state/StoreEffectFactory';
import type { CoreEffects, CoreExportNames, CoreStateAtoms } from '../../../core/Types';
import type { CoreUtils } from '../../../core/utils/Types';
import type { extendEventBusTypes } from '../../../event-bus/EventBus';
import type { EventBus, EventBusExportNames } from '../../../event-bus/Types';
import type { SourceStateAtom } from '../../../source/atoms/SourceStateAtom';
import type { SourceExportNames } from '../../../source/Types';
import type { SourcesApiExportNames } from '../../../sources-api/Types';
import type { ContextWithState } from '../../../Types';
import type { isAdPositionKnown } from '../../base/AdPosition';
import type { createBaseAdPodAtom } from '../../base/BaseAdPodAtom';
import type { BaseAdPodState } from '../../base/BaseAdPodState';
import type { BaseAdState } from '../../base/BaseAdState';
import type { AdvertisingBaseExportNames, ContentSourceAdExports } from '../../base/Types';
import type { AdvertisingEventMap } from '../AdvertisingEvents';
import type { AdApiCache } from '../api-conversion/AdApiCache';
import type { ContentSourceAdvertisingApi } from '../Types';
export type ContentSourceAdvertisingApiDependencies = {
    [CoreExportNames.CoreEffects]: CoreEffects;
    [CoreExportNames.CoreStateAtoms]: CoreStateAtoms;
    [CoreExportNames.Utils]: CoreUtils;
    [EventBusExportNames.ExtendEventBusTypes]: typeof extendEventBusTypes;
    [SourcesApiExportNames.SourceApiManager]: ApiManager<{
        ads: ContentSourceAdvertisingApi;
    }>;
    [SourcesApiExportNames.SourceEventBus]: EventBus<AdvertisingEventMap>;
    [AdvertisingBaseExportNames.CreateBaseAdPod]: typeof createBaseAdPodAtom;
    [AdvertisingBaseExportNames.BaseAdPodState]: typeof BaseAdPodState;
    [AdvertisingBaseExportNames.BaseAdState]: typeof BaseAdState;
    [AdvertisingBaseExportNames.IsAdPositionKnown]: typeof isAdPositionKnown;
    [SourceExportNames.SourceState]: SourceStateAtom;
} & ContentSourceAdExports;
export type ContentSourceAdApiContext = ContextHaving<ContentSourceAdvertisingApiDependencies, EmptyObject, ContextUsing<[StoreEffectFactory<'adApiCache', AdApiCache>], ContextWithState>>;
