/** * Namespaced API for the Meta Business SDK. * * Usage: * import { Meta } from "@promobase/meta-business-sdk-ts"; * const api = Meta.createClient({ accessToken: "..." }); * const ig = Meta.Instagram.createClient({ api, igAccountId: "..." }); */ import type { BatchHandle, ResolveBatchHandles } from "./batch.ts"; import { BatchBuilder } from "./batch.ts"; import { createFacebookOAuth, createFacebookPageClient } from "./clients/facebook/index.ts"; import type { OAuthConfig as FacebookOAuthConfig, FacebookPageClientOptions } from "./clients/facebook/types.ts"; import { createInstagramClient, createInstagramOAuth } from "./clients/instagram/index.ts"; import type { InstagramClientOptions, OAuthConfig as InstagramOAuthConfig } from "./clients/instagram/types.ts"; import { createThreadsClient, createThreadsOAuth } from "./clients/threads/index.ts"; import type { ThreadsClientOptions, OAuthConfig as ThreadsOAuthConfig } from "./clients/threads/types.ts"; import type { WebhookParseOptions, WebhookParseResult } from "./clients/webhooks.ts"; import { parseFacebookWebhook, parseInstagramWebhook, parseThreadsWebhook, safeParseFacebookWebhook, safeParseInstagramWebhook, safeParseThreadsWebhook, verifyWebhookChallenge, verifyWebhookSignature, WebhookParseError } from "./clients/webhooks.ts"; import { FacebookApiError } from "./errors.ts"; import type { MetaClientOptions } from "./generated/client-factory.ts"; import { createTypedClient } from "./generated/client-factory.ts"; import type { MetaRateLimiterOptions } from "./rate-limiter.ts"; import { MetaRateLimiter } from "./rate-limiter.ts"; export declare const Meta: { /** Create a typed Meta Graph API client with 314 node accessors. */ readonly createClient: typeof createTypedClient; /** Facebook API error class with code, subcode, type, fbtrace_id. */ readonly FacebookApiError: typeof FacebookApiError; /** Batch request builder for combining multiple API calls. */ readonly BatchBuilder: typeof BatchBuilder; /** Rate limiter that parses Meta's x-app-usage and x-business-use-case-usage headers. */ readonly RateLimiter: { readonly create: (opts?: MetaRateLimiterOptions) => MetaRateLimiter; }; /** Instagram client and OAuth. */ readonly Instagram: { /** Create an Instagram client for publishing, comments, stories, messaging. */ readonly createClient: typeof createInstagramClient; /** Create an Instagram OAuth handler for token exchange and refresh. */ readonly OAuth: typeof createInstagramOAuth; }; /** Facebook Pages client and OAuth. */ readonly Facebook: { /** Create a Facebook Page client for feed, comments, stories, messaging. */ readonly createClient: typeof createFacebookPageClient; /** Create a Facebook OAuth handler for token exchange and Page tokens. */ readonly OAuth: typeof createFacebookOAuth; }; /** Threads client and OAuth. */ readonly Threads: { /** Create a Threads client for posts, replies, carousels, insights. */ readonly createClient: typeof createThreadsClient; /** Create a Threads OAuth handler for token exchange and refresh. */ readonly OAuth: typeof createThreadsOAuth; }; /** Webhook verification, parsing, and Zod schemas. */ readonly Webhooks: { /** Verify a Meta webhook challenge (GET handler). */ readonly verifyChallenge: typeof verifyWebhookChallenge; /** Verify HMAC-SHA256 signature on a webhook payload. */ readonly verifySignature: typeof verifyWebhookSignature; /** Parse and validate webhooks (throws on failure). */ readonly parse: { readonly instagram: typeof parseInstagramWebhook; readonly facebook: typeof parseFacebookWebhook; readonly threads: typeof parseThreadsWebhook; }; /** Parse and validate webhooks (returns Result, never throws). */ readonly safeParse: { readonly instagram: typeof safeParseInstagramWebhook; readonly facebook: typeof safeParseFacebookWebhook; readonly threads: typeof safeParseThreadsWebhook; }; /** WebhookParseError class for typed error handling. */ readonly ParseError: typeof WebhookParseError; /** Zod schemas for advanced validation or composing custom parsers. */ readonly schemas: { readonly instagram: import("zod").ZodObject<{ object: import("zod").ZodLiteral<"instagram">; entry: import("zod").ZodArray; recipient: import("zod").ZodObject<{ id: import("zod").ZodString; }, import("zod/v4/core").$strip>; timestamp: import("zod").ZodNumber; message: import("zod").ZodOptional; attachments: import("zod").ZodOptional; }, import("zod/v4/core").$strip>>; }, import("zod/v4/core").$strip>>>; reply_to: import("zod").ZodOptional; story: import("zod").ZodOptional>; }, import("zod/v4/core").$strip>>; is_echo: import("zod").ZodOptional; }, import("zod/v4/core").$strip>>; read: import("zod").ZodOptional>; reaction: import("zod").ZodOptional; emoji: import("zod").ZodOptional; reaction: import("zod").ZodOptional; }, import("zod/v4/core").$strip>>; }, import("zod/v4/core").$strip>>>; changes: import("zod").ZodOptional; value: import("zod").ZodObject<{ id: import("zod").ZodOptional; comment_id: import("zod").ZodOptional; parent_id: import("zod").ZodOptional; text: import("zod").ZodOptional; verb: import("zod").ZodOptional; from: import("zod").ZodOptional>; media: import("zod").ZodOptional; }, import("zod/v4/core").$strip>>; created_time: import("zod").ZodOptional; }, import("zod/v4/core").$strip>; }, import("zod/v4/core").$strip>, import("zod").ZodObject<{ field: import("zod").ZodLiteral<"message_edit">; value: import("zod").ZodObject<{ mid: import("zod").ZodString; text: import("zod").ZodOptional; num_edit: import("zod").ZodOptional; timestamp: import("zod").ZodOptional; from: import("zod").ZodOptional>; }, import("zod/v4/core").$strip>; }, import("zod/v4/core").$strip>, import("zod").ZodObject<{ field: import("zod").ZodLiteral<"message_reactions">; value: import("zod").ZodObject<{ mid: import("zod").ZodString; action: import("zod").ZodEnum<{ react: "react"; unreact: "unreact"; }>; emoji: import("zod").ZodOptional; reaction: import("zod").ZodOptional; timestamp: import("zod").ZodOptional; from: import("zod").ZodOptional>; }, import("zod/v4/core").$strip>; }, import("zod/v4/core").$strip>], "field">>>; }, import("zod/v4/core").$strip>>; }, import("zod/v4/core").$strip>; readonly facebook: import("zod").ZodObject<{ object: import("zod").ZodLiteral<"page">; entry: import("zod").ZodArray; recipient: import("zod").ZodObject<{ id: import("zod").ZodString; }, import("zod/v4/core").$strip>; timestamp: import("zod").ZodNumber; message: import("zod").ZodOptional; attachments: import("zod").ZodOptional; }, import("zod/v4/core").$strip>>; }, import("zod/v4/core").$strip>>>; reply_to: import("zod").ZodOptional>; is_echo: import("zod").ZodOptional; }, import("zod/v4/core").$strip>>; read: import("zod").ZodOptional>; reaction: import("zod").ZodOptional; emoji: import("zod").ZodOptional; }, import("zod/v4/core").$strip>>; }, import("zod/v4/core").$strip>>>; changes: import("zod").ZodOptional; value: import("zod").ZodObject<{ item: import("zod").ZodOptional; verb: import("zod").ZodOptional>; comment_id: import("zod").ZodOptional; parent_id: import("zod").ZodOptional; post_id: import("zod").ZodOptional; message: import("zod").ZodOptional; from: import("zod").ZodOptional>; created_time: import("zod").ZodOptional; is_hidden: import("zod").ZodOptional; }, import("zod/v4/core").$strip>; }, import("zod/v4/core").$strip>>>; }, import("zod/v4/core").$strip>>; }, import("zod/v4/core").$strip>; readonly threads: import("zod").ZodObject<{ app_id: import("zod").ZodString; topic: import("zod").ZodEnum<{ moderate: "moderate"; interaction: "interaction"; }>; target_id: import("zod").ZodString; time: import("zod").ZodNumber; subscription_id: import("zod").ZodString; values: import("zod").ZodObject<{ field: import("zod").ZodEnum<{ replies: "replies"; mentions: "mentions"; delete: "delete"; publish: "publish"; }>; value: import("zod").ZodObject<{ id: import("zod").ZodOptional; username: import("zod").ZodOptional; text: import("zod").ZodOptional; media_type: import("zod").ZodOptional; permalink: import("zod").ZodOptional; timestamp: import("zod").ZodOptional; replied_to: import("zod").ZodOptional>; root_post: import("zod").ZodOptional>; owner: import("zod").ZodOptional>; deleted_at: import("zod").ZodOptional; }, import("zod/v4/core").$strip>; }, import("zod/v4/core").$strip>; }, import("zod/v4/core").$strip>; }; }; }; export type { BatchHandle, FacebookOAuthConfig, FacebookPageClientOptions, InstagramClientOptions, InstagramOAuthConfig, MetaClientOptions, MetaRateLimiterOptions, ResolveBatchHandles, ThreadsClientOptions, ThreadsOAuthConfig, WebhookParseOptions, WebhookParseResult, }; //# sourceMappingURL=namespace.d.ts.map