import ActivityEventCommandBase from '../commands/activityEventCommandBase'; import { AdType } from '../../../settings/models/adType'; import { ActivityType } from '../models/activityType'; import { AdPage } from '../../../ads/models/adPage'; import { AdStrategy } from '../../../settings/models/adStrategy'; import { ClipAd } from '../../../ads/models/clipAd'; import { StoryWithRowIndex } from '../../../stories/models/story'; import ActivityRequestContent from '../models/activityRequestContent'; import UserActivityData from '../models/userActivityData'; type AdCommandStoryParams = { ad: AdPage; story: StoryWithRowIndex; currentCategories: string[]; }; type AdCommandClipParams = { ad: ClipAd; }; type StoryAdCommandParams = SpecificCommandParams extends void ? AdCommandStoryParams : AdCommandStoryParams & SpecificCommandParams; type ClipAdCommandParams = SpecificCommandParams extends void ? AdCommandClipParams : AdCommandClipParams & SpecificCommandParams; export type AdCommandParams = StoryAdCommandParams | ClipAdCommandParams; type StoryEventData = Pick; type ClipEventData = Pick; export type AdCommandData = Pick; declare abstract class AdCommandBase extends ActivityEventCommandBase { abstract buildAdCommandData(): AdCommandData; activityType: ActivityType; adPlacement: AdStrategy; adStrategy: string; ad: AdPage; adType: AdType; isAdCommand: boolean; /** Story or clip specific data */ storyOrClipEventData: StoryEventData | ClipEventData; constructor(params: AdCommandParams); buildRequestContent(): ActivityRequestContent; buildEventData(): UserActivityData; } export default AdCommandBase;