import type { ContentPublishingLimitResponseFields } from "../../generated/objects/content-publishing-limit-response.ts"; import type { IGUserCreateMediaParams } from "../../generated/objects/ig-user.ts"; import type { ShadowIGMediaBuilderFields } from "../../generated/objects/shadow-ig-media-builder.ts"; import type { PublishResult } from "./types.ts"; type CreateClientReturn = ReturnType; type IGUserNode = ReturnType; /** Container status as returned by the API. */ export type ContainerStatus = ShadowIGMediaBuilderFields["status_code"]; export type CreateContainerParams = IGUserCreateMediaParams; export interface ResumableUploadOptions { /** The container ID returned from create() with upload_type: "resumable" */ containerId: string; /** Access token */ accessToken: string; /** API version (e.g., "v25.0") */ apiVersion?: string; /** Upload from a public URL */ fileUrl?: string; /** Upload from a local file as Blob/ArrayBuffer */ fileData?: Blob | ArrayBuffer; /** File size in bytes (required for fileData uploads) */ fileSize?: number; } export declare function createContainers(api: CreateClientReturn, igUser: IGUserNode): { /** Create a media container using the generated IGUser.media.create() endpoint. */ create(params: CreateContainerParams): Promise<{ id: string; }>; /** * Create a resumable upload container for large videos. * After creating, call uploadResumable() to upload the video, then poll and publish. */ createResumable(params: Omit): Promise<{ id: string; }>; /** * Upload video to a resumable upload container. * Uses rupload.facebook.com (different host from the Graph API). */ uploadResumable(opts: ResumableUploadOptions): Promise<{ success: boolean; }>; /** Check container processing status using the generated ShadowIGMediaBuilder node. */ getStatus(containerId: string): Promise; /** Publish a finished container using the generated IGUser.createMediaPublish() endpoint. */ publish(containerId: string): Promise; /** * Check the account's current publishing rate limit usage. * Instagram accounts are limited to 100 API-published posts per 24-hour period. */ getPublishingLimit(): Promise[]>; }; export {}; //# sourceMappingURL=containers.d.ts.map