/** * OAuth Provider Metadata Manager * * Handles fetching and storing provider-specific metadata: * - Facebook: Pages, page access tokens, page info * - Instagram: Business accounts, usernames, profile info * - Google: Email, name, profile picture (for future Drive/Calendar) * * Metadata is stored in the account.metadata JSONB field */ import { OAuthProvider, ProviderMetadata } from './types'; /** * Metadata Manager */ export declare class MetadataManager { /** * Fetch metadata from provider API * * @param provider - OAuth provider * @param accessToken - Valid access token with appropriate scopes * @returns Provider-specific metadata */ static fetchMetadata(provider: OAuthProvider, accessToken: string): Promise; /** * Fetch Facebook metadata (pages, page info) */ private static fetchFacebookMetadata; /** * Fetch Instagram metadata (business account info) */ private static fetchInstagramMetadata; /** * Fetch Google metadata (basic profile info) */ private static fetchGoogleMetadata; /** * Validate metadata structure * * @param provider - OAuth provider * @param metadata - Metadata to validate * @returns true if valid */ static validateMetadata(provider: OAuthProvider, metadata: ProviderMetadata): boolean; /** * Refresh metadata (re-fetch from provider) * * @param provider - OAuth provider * @param accessToken - Current access token * @returns Updated metadata */ static refreshMetadata(provider: OAuthProvider, accessToken: string): Promise; /** * Merge existing metadata with new metadata (for partial updates) * * @param existing - Existing metadata * @param updates - New metadata to merge * @returns Merged metadata */ static mergeMetadata(existing: ProviderMetadata, updates: Partial): ProviderMetadata; /** * Extract display name from metadata (for UI) * * @param provider - OAuth provider * @param metadata - Provider metadata * @returns Display name */ static getDisplayName(provider: OAuthProvider, metadata: ProviderMetadata): string; /** * Extract profile picture URL from metadata (for UI) * * @param provider - OAuth provider * @param metadata - Provider metadata * @returns Profile picture URL or undefined */ static getProfilePicture(provider: OAuthProvider, metadata: ProviderMetadata): string | undefined; } //# sourceMappingURL=metadata.d.ts.map