import type { PublishedPost, PublishPostInput, SocialIdentityCredentials, SocialPublishingDriver, TimelineQuery, TimelineResult } from '../types'; export declare interface InstagramDriverOptions { graphVersion?: string authBase?: string graphBase?: string } export declare interface InstagramAuthUrlInput { clientId: string redirectUrl: string scopes: string[] state: string } export declare interface InstagramTokenExchangeInput { clientId: string clientSecret: string redirectUrl: string code: string } export declare interface InstagramAccount { igUserId: string username?: string pageAccessToken: string } export declare class InstagramApiError extends Error { public status: number; public body: string; constructor(message: string, status: number, body: string); get isAuthError(): boolean; } /** * Publishing driver for Instagram Business/Creator accounts via the Facebook * Graph API. Auth is Facebook Login (OAuth 2.0). Publishing is the documented * two-step flow: create a media container, then publish it. * * Instagram does not allow text-only posts — every post requires an image (or * video) reachable at a public URL, supplied via `post.media`. */ export declare class InstagramPublishingDriver implements SocialPublishingDriver { readonly provider: 'instagram'; characterLimit: number; protected graphVersion: string; protected authBase: string; protected graphBase: string; constructor(options?: InstagramDriverOptions); getAuthUrl(input: InstagramAuthUrlInput): string; exchangeCode(input: InstagramTokenExchangeInput): Promise<{ accessToken: string, expiresIn?: number }>; resolveAccount(accessToken: string): Promise; publish(identity: SocialIdentityCredentials, post: PublishPostInput): Promise; timeline(_identity: SocialIdentityCredentials, _query?: TimelineQuery): Promise; protected graph(path: string, init: RequestInit): Promise; }