export {};
declare global {
    namespace Amity {
        const enum AdPlacement {
            FEED = "feed",
            STORY = "story",
            COMMENT = "comment",
            CHATLIST = "chatlist",
            CHAT = "chat"
        }
        const enum SettingDisplayType {
            Fixed = "fixed",
            TimeWindow = "time-window"
        }
        type AdTarget = {
            communityIds: Amity.Community['communityId'][];
        };
        type RawAd = {
            adId: string;
            advertiserId: string;
            name: string;
            placements: AdPlacement[];
            headline: string;
            description: string;
            body: string;
            image1_1: string;
            image9_16: string;
            callToAction: string;
            callToActionUrl: string;
            targets: Amity.AdTarget;
            startAt: Amity.timestamp;
            endAt?: Amity.timestamp;
            createdAt: Amity.timestamp;
            updatedAt: Amity.timestamp;
        };
        type RawAdvertiser = {
            advertiserId: string;
            name: string;
            companyName: string;
            avatarFileId: string;
            adsCount: number;
            createdAt: Amity.timestamp;
            updatedAt: Amity.timestamp;
        };
        type AdFrequency = {
            type: Amity.SettingDisplayType;
            value: number;
        };
        type FrequencySettings = {
            feed?: Amity.AdFrequency;
            story?: Amity.AdFrequency;
            comment?: Amity.AdFrequency;
        };
        type AdsSettings = {
            enabled: boolean;
            maxActiveAds: number;
            frequency: Amity.FrequencySettings;
            updatedAt: Amity.timestamp;
        };
        type InternalAdvertiser = RawAdvertiser;
        type Advertiser = RawAdvertiser & {
            avatar?: Amity.File<'image'>;
        };
        type InternalAd = Omit<RawAd, 'endAt'> & {
            endAt: Amity.timestamp | null;
        };
        type Ad = Omit<InternalAd, 'image1_1' | 'image9_16'> & {
            advertiser?: Amity.Advertiser;
            image1_1?: Amity.File<'image'>;
            image9_16?: Amity.File<'image'>;
            analytics: {
                markAsSeen: (placement: Amity.AdPlacement) => void;
                markLinkAsClicked: (placement: Amity.AdPlacement) => void;
            };
        };
        type InternalNetworkAds = {
            ads: Amity.InternalAd[];
            settings: Amity.AdsSettings;
        };
        type NetworkAds = {
            ads: Amity.Ad[];
            settings: Amity.AdsSettings;
        };
    }
}
//# sourceMappingURL=ad.d.ts.map