/** * SharePoint Publisher Module * Part of ADPA (Advanced Document Processing Assistant) v2.1.3 * * Handles publishing generated documents to SharePoint Online sites and document libraries * using Microsoft Graph API for secure, enterprise-grade document management. * * Features: * - Microsoft Graph API integration * - OAuth 2.0 and Service Principal authentication * - Batch document upload with retry logic * - SharePoint metadata management * - Folder structure creation and management * - Version control and conflict resolution * - Enterprise security and compliance * * References: * - Microsoft Graph API: https://docs.microsoft.com/en-us/graph/api/overview * - SharePoint REST API: https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/working-with-folders-and-files-with-rest */ import { SharePointConfig, SharePointDocument, PublishResult, SharePointDriveItem, PublishingOptions, BatchUploadOptions } from './types.js'; /** * Main SharePoint Publisher class * Handles all interactions with SharePoint Online via Microsoft Graph API */ export declare class SharePointPublisher { private config; private oauth2Handler?; private graphClient?; private axiosClient; private siteId?; private driveId?; constructor(config: SharePointConfig); /** * Initialize SharePoint connection and get site/drive information */ initialize(): Promise; /** * Test connection to SharePoint and verify permissions */ testConnection(): Promise<{ success: boolean; error?: string; siteInfo?: any; driveInfo?: any; }>; /** * Start OAuth2 authentication flow */ startOAuth2Login(): Promise<{ success: boolean; error?: string; }>; /** * Check if user is authenticated */ isAuthenticated(): Promise; /** * Publish a single document to SharePoint */ publishDocument(document: SharePointDocument, options?: PublishingOptions): Promise; /** * Publish multiple documents from a directory */ publishDocuments(documentsPath: string, options?: PublishingOptions & BatchUploadOptions): Promise; /** * Create a folder in SharePoint document library */ createFolder(folderPath: string): Promise; /** * Get drive item by path */ getDriveItem(itemPath: string): Promise; /** * List items in a folder */ listFolderItems(folderPath?: string): Promise; /** * Delete a drive item */ deleteItem(itemId: string): Promise; /** * Get access token for authentication */ private getAccessToken; /** * Get service principal access token */ private getServicePrincipalToken; /** * Resolve SharePoint site ID from site URL */ private resolveSiteId; /** * Resolve drive ID for the document library */ private resolveDriveId; /** * Upload file to SharePoint */ private uploadFile; /** * Simple upload for smaller files */ private simpleUpload; /** * Session upload for larger files */ private sessionUpload; /** * Add metadata to a SharePoint item */ private addMetadata; /** * Ensure folder exists, create if necessary */ private ensureFolderExists; /** * Build complete folder path */ private buildFolderPath; /** * Prepare file content for upload */ private prepareFileContent; /** * Get all markdown files from directory recursively */ private getMarkdownFiles; /** * Get folder path from file path relative to base directory */ private getFolderPathFromFile; /** * Extract title from markdown content */ private extractTitleFromContent; /** * Generate SharePoint metadata from document content */ private generateMetadata; /** * Infer document category from file name/path */ private inferDocumentCategory; /** * Add delay between operations */ private delay; } /** * Factory function to create SharePointPublisher instance */ export declare function createSharePointPublisher(config: SharePointConfig): SharePointPublisher; /** * Validate SharePoint configuration */ export declare function validateSharePointConfig(config: SharePointConfig): { valid: boolean; errors: string[]; }; //# sourceMappingURL=SharePointPublisher.d.ts.map