/** * SharePoint Integration Type Definitions * Part of ADPA (Automated Document Processing Assistant) v2.1.3 * * Defines TypeScript interfaces and types for SharePoint integration * with Microsoft Graph API and Microsoft 365 ecosystem. * * Features: * - OAuth 2.0 and Service Principal authentication * - Microsoft Graph API integration * - SharePoint document library management * - Enterprise security and compliance */ export interface SharePointConfig { authMethod: 'oauth2' | 'service-principal' | 'certificate'; tenantId: string; clientId: string; clientSecret?: string; certificatePath?: string; siteUrl: string; documentLibrary: string; oauth2?: { redirectUri: string; scopes: string[]; authority?: string; }; rootFolderPath?: string; enableVersioning?: boolean; retentionDays?: number; } export interface SharePointDocument { title: string; content: string; fileName: string; contentType?: string; folderPath?: string; metadata?: Record; tags?: string[]; category?: string; } export interface PublishResult { success: boolean; driveItemId?: string; webUrl?: string; error?: string; fileName: string; size?: number; lastModified?: string; } export interface SharePointSite { id: string; displayName: string; name: string; webUrl: string; description?: string; } export interface SharePointDriveItem { id: string; name: string; webUrl: string; size: number; createdDateTime: string; lastModifiedDateTime: string; folder?: { childCount: number; }; file?: { mimeType: string; hashes: { quickXorHash?: string; sha1Hash?: string; }; }; } export interface SharePointMetadata { Title?: string; ContentType?: string; Author?: string; Created?: string; Modified?: string; DocumentCategory?: string; ProjectPhase?: string; PMBOKReference?: string; DocumentVersion?: string; ReviewStatus?: string; ApprovalStatus?: string; [key: string]: any; } export interface BatchUploadOptions { maxConcurrency?: number; chunkSize?: number; retryAttempts?: number; progressCallback?: (uploaded: number, total: number) => void; } export interface SharePointPermissions { read: boolean; write: boolean; delete: boolean; manage: boolean; } export interface OAuth2Config { tenantId: string; clientId: string; redirectUri: string; scopes: string[]; authority?: string; cacheLocation?: string; } export interface TokenResponse { access_token: string; token_type: string; expires_in: number; scope: string; refresh_token?: string; } export interface GraphError { error: { code: string; message: string; innerError?: { date: string; 'request-id': string; 'client-request-id': string; }; }; } export interface PublishingOptions { parentFolderPath?: string; enableVersioning?: boolean; overwriteExisting?: boolean; createFolders?: boolean; preserveTimestamps?: boolean; addMetadata?: boolean; tagPrefix?: string; } export interface SharePointPublishOptions { folderPath?: string; labelPrefix?: string; dryRun?: boolean; force?: boolean; createFolders?: boolean; overwriteExisting?: boolean; preserveMetadata?: boolean; enableVersioning?: boolean; } export interface SiteCreationOptions { template?: string; language?: number; timeZone?: number; owners?: string[]; members?: string[]; } export interface SearchOptions { query?: string; fileTypes?: string[]; dateRange?: { start: string; end: string; }; sortBy?: 'name' | 'modified' | 'size'; sortOrder?: 'asc' | 'desc'; top?: number; } export interface GraphResponse { '@odata.context'?: string; '@odata.nextLink'?: string; value?: T[]; } export interface DriveResponse { id: string; driveType: string; name: string; webUrl: string; quota: { total: number; used: number; remaining: number; }; } //# sourceMappingURL=types.d.ts.map