import { Clip } from '../../row/components/list/models/clip'; import { ClipsAdSettings } from '../../settings/models/clipAdSettings'; import { StoriesAdSettings } from '../../settings/models/storyAdSettings'; import { Story } from '../../stories/models/story'; export interface AdTargeting { [index: string]: string; } interface StorytellerAdConfig { type: 'custom'; remoteUrl: string; } interface IntegratingAppAdConfig { type?: 'doubleclick'; slot: string; customTargeting?: AdTargeting; } export type AdConfig = StorytellerAdConfig | IntegratingAppAdConfig; export declare const getClipAdConfig: ({ clip, collection, nextClip, }: { clip: Clip; collection: string; nextClip?: Clip | null | undefined; }) => AdConfig | null; export declare const getStoryAdConfig: ({ categories, story, }: { categories?: string[] | undefined; story: Story; }) => AdConfig | null; type IntegratingAppAdAttributes = { 'data-slot': IntegratingAppAdConfig['slot']; type: 'doubleclick'; json: { targeting?: AdTargeting; }; }; type StorytellerAdAttributes = { 'data-url': StorytellerAdConfig['remoteUrl']; type: 'custom'; }; export type AdAttributes = IntegratingAppAdAttributes | StorytellerAdAttributes; export declare const getAdAttributes: (config: AdConfig) => AdAttributes; export declare const formatAdConfig: (config: AdConfig | null, settings?: StoriesAdSettings | ClipsAdSettings) => string; export declare const validateAdConfig: (adConfig: AdConfig | null) => boolean; export declare const isIntegratingAppAdConfig: (config: AdConfig) => config is IntegratingAppAdConfig; export {};