export interface SocialAccountPost { /** The post's call-to-action button, for example shop_now (Facebook only; null for Instagram and TikTok). */ call_to_action: SocialAccountPost.CallToAction | null; /** The text accompanying the post, when available. */ caption: string | null; /** The URL the post's call-to-action drives to (Facebook only; null for Instagram and TikTok). */ destination_url: string | null; /** An iframe-embeddable URL for previewing the post inline (the platform's player or post embed). For TikTok this is the only preview, since media_url is null; for Facebook and Instagram it supplements media_url. Null when no public embed is available. */ embed_url: string | null; /** The platform's own identifier for the post or media. Use it to reference the post on an ad. */ id: string; /** The URL of the post's media — the image for image posts, the playable video file for video posts. Null for TikTok, which exposes no raw file (use embed_url). Meta URLs are signed and expire after roughly 24 hours, so don't store them. */ media_url: string | null; restrictions: SocialAccountPost.Restrictions.Item[]; /** Poster image for video posts (always set for TikTok, which is video-only); null for image posts, where media_url is already the image. */ thumbnail_url: string | null; /** The platform video identifier for engagement audience rules. Null for non-video posts or when unavailable. Facebook video identifiers differ from post identifiers. */ video_id: string | null; } export declare namespace SocialAccountPost { /** The post's call-to-action button, for example shop_now (Facebook only; null for Instagram and TikTok). */ const CallToAction: { readonly LearnMore: "learn_more"; readonly ShopNow: "shop_now"; readonly SignUp: "sign_up"; readonly Subscribe: "subscribe"; readonly GetStarted: "get_started"; readonly BookNow: "book_now"; readonly ApplyNow: "apply_now"; readonly ContactUs: "contact_us"; readonly Download: "download"; readonly OrderNow: "order_now"; readonly BuyNow: "buy_now"; readonly GetQuote: "get_quote"; readonly MessagePage: "message_page"; readonly WhatsappMessage: "whatsapp_message"; readonly InstagramMessage: "instagram_message"; readonly CallNow: "call_now"; readonly GetDirections: "get_directions"; readonly SendUpdates: "send_updates"; readonly GetOffer: "get_offer"; readonly WatchMore: "watch_more"; readonly ListenNow: "listen_now"; readonly PlayGame: "play_game"; readonly OpenLink: "open_link"; readonly NoButton: "no_button"; readonly GetOfferView: "get_offer_view"; readonly GetEventTickets: "get_event_tickets"; readonly SeeMenu: "see_menu"; readonly RequestTime: "request_time"; readonly EventRsvp: "event_rsvp"; readonly SeeDetails: "see_details"; readonly ViewInstagramProfile: "view_instagram_profile"; }; type CallToAction = (typeof CallToAction)[keyof typeof CallToAction]; type Restrictions = Restrictions.Item[]; namespace Restrictions { /** Ways this post can't be used on an ad. `lead_form_ineligible`: post can't be used in lead form ads. `promotion_ineligible`: the platform won't promote this post at all — always present when that's true, alongside a reason code when one is identified. `copyrighted_music`: post uses music the platform does not allow for ads. `messenger_destination`, `instagram_destination`, `whatsapp_destination`: the post's own button opens that chat app, so the post can only run in an ad group that sends people to the same one — always accompanied by `lead_form_ineligible`. Empty when the post has no restrictions. */ const Item: { readonly LeadFormIneligible: "lead_form_ineligible"; readonly PromotionIneligible: "promotion_ineligible"; readonly CopyrightedMusic: "copyrighted_music"; readonly MessengerDestination: "messenger_destination"; readonly InstagramDestination: "instagram_destination"; readonly WhatsappDestination: "whatsapp_destination"; }; type Item = (typeof Item)[keyof typeof Item]; } }