/** * Confluence Publisher Module * Part of ADPA (Automated Document Processing Assistant) v2.1.3 * * Handles publishing generated documents to Confluence Cloud * Features: * - API-based publishing to Confluence spaces * - OAuth 2.0 (3LO) and API token authentication * - Automatic page creation and updates * - Hierarchical document organization * - Metadata preservation and tagging * - Error handling and retry logic */ import { OAuth2Config } from './ConfluenceOAuth2.js'; export interface ConfluenceConfig { authMethod: 'oauth2' | 'api-token'; oauth2?: OAuth2Config; baseUrl?: string; email?: string; apiToken?: string; spaceKey: string; parentPageId?: string; cloudId?: string; } export interface ConfluencePage { id?: string; title: string; content: string; spaceKey: string; parentId?: string; labels?: string[]; metadata?: Record; } export interface PublishResult { success: boolean; pageId?: string; pageUrl?: string; error?: string; title: string; } /** * Main Confluence Publisher class * Handles all interactions with Confluence Cloud API */ export declare class ConfluencePublisher { private client; private config; private oauth2Handler?; constructor(config: ConfluenceConfig); /** * Create a placeholder client for OAuth2 initialization */ private createPlaceholderClient; /** * Initialize or refresh OAuth2 client */ private ensureOAuth2Client; /** * Initialize client for API token authentication (legacy) */ private initializeApiTokenClient; /** * Ensure client is properly configured before making API calls */ private ensureClient; /** * Start OAuth2 authentication flow (for OAuth2 method) * @returns Promise with OAuth2 tokens */ startOAuth2Login(): Promise<{ success: boolean; tokens?: any; error?: string; }>; /** * Check if OAuth2 is authorized * @returns Boolean indicating authorization status */ isOAuth2Authorized(): boolean; /** * Test connectivity to Confluence API * @returns Promise with connection status */ testConnection(): Promise<{ success: boolean; error?: string; userInfo?: any; cloudId?: string; }>; /** * Get space information * @param spaceKey Space key to query * @returns Space information or null if not found */ getSpace(spaceKey?: string): Promise; /** * Create a new page in Confluence * @param page Page data to create * @returns Created page information */ createPage(page: ConfluencePage): Promise; /** * Update an existing page in Confluence * @param pageId Page ID to update * @param page Updated page data * @returns Update result */ updatePage(pageId: string, page: ConfluencePage): Promise; /** * Find page by title in the configured space * @param title Page title to search for * @returns Page data or null if not found */ findPageByTitle(title: string): Promise; /** * Publish or update a page (create if doesn't exist, update if it does) * @param page Page data to publish * @returns Publish result */ publishPage(page: ConfluencePage): Promise; /** * Publish multiple documents from a directory * @param documentsPath Path to generated documents * @param options Publishing options * @returns Array of publish results */ publishDocuments(documentsPath: string, options?: { parentPageTitle?: string; labelPrefix?: string; includeMetadata?: boolean; }): Promise; /** * Add labels to a page * @param pageId Page ID * @param labels Array of label names */ private addLabelsToPage; /** * Replace all labels on a page * @param pageId Page ID * @param labels New labels array */ private replaceLabelsOnPage; /** * Convert Markdown content to Confluence Storage Format * Basic conversion - can be enhanced for more complex formatting * @param markdown Markdown content * @returns Confluence storage format HTML */ private convertMarkdownToConfluence; /** * Utility method to add delays between API calls * @param ms Milliseconds to delay */ private delay; /** * Generate page URL based on authentication method * @param webuiPath Web UI path from Confluence response * @returns Full page URL */ private generatePageUrl; /** * Get publishing statistics * @returns Statistics object */ getPublishingStats(): Promise<{ totalPages: number; spaceInfo: any; lastUpdated: string; }>; /** * Detect if we need Cloud API and try to get Cloud ID automatically (legacy API token method) * @returns Promise with detection result */ detectAndConfigureCloudApi(): Promise<{ success: boolean; cloudId?: string; error?: string; }>; } /** * Factory function to create ConfluencePublisher instance * @param config Confluence configuration * @returns ConfluencePublisher instance */ export declare function createConfluencePublisher(config: ConfluenceConfig): ConfluencePublisher; /** * Utility function to validate Confluence configuration * @param config Configuration to validate * @returns Validation result */ export declare function validateConfluenceConfig(config: Partial): { valid: boolean; errors: string[]; }; //# sourceMappingURL=ConfluencePublisher.d.ts.map