/**
 * SharePoint Configuration Manager
 * Part of ADPA (Automated Document Processing Assistant) v2.1.3
 *
 * Manages SharePoint integration configuration, including environment variables,
 * configuration file management, and validation for enterprise deployments.
 *
 * Features:
 * - Configuration file management with schema validation
 * - Environment variable integration and fallbacks
 * - Multi-tenant and authentication method support
 * - Configuration validation and health checks
 * - Secure credential handling recommendations
 */
import { SharePointConfig } from './types.js';
export interface SharePointConfigFile {
    sharepoint?: {
        authMethod: 'oauth2' | 'service-principal' | 'certificate';
        tenantId: string;
        clientId: string;
        siteUrl: string;
        documentLibrary: string;
        rootFolderPath?: string;
        oauth2?: {
            redirectUri: string;
            scopes: string[];
            authority?: string;
        };
        publishingOptions?: {
            enableVersioning?: boolean;
            createFolders?: boolean;
            overwriteExisting?: boolean;
            addMetadata?: boolean;
            maxConcurrency?: number;
        };
        defaultTags?: string[];
        defaultMetadata?: Record<string, any>;
        retentionDays?: number;
        enableAuditLog?: boolean;
    };
}
export interface ConfigurationStatus {
    configured: boolean;
    valid: boolean;
    errors: string[];
    warnings: string[];
    envVarsSet: string[];
    envVarsMissing: string[];
    recommendedScopes: string[];
}
/**
 * SharePoint Configuration Manager class
 */
export declare class SharePointConfigManager {
    private configPath;
    private config;
    constructor(configPath?: string);
    /**
     * Initialize SharePoint configuration
     */
    initializeConfiguration(): Promise<{
        success: boolean;
        message: string;
        configPath: string;
    }>;
    /**
     * Get SharePoint configuration with environment variable fallbacks
     */
    getSharePointConfig(): SharePointConfig;
    /**
     * Validate current configuration
     */
    validateConfiguration(): {
        valid: boolean;
        errors: string[];
        warnings: string[];
    };
    /**
     * Get configuration status for display
     */
    getConfigurationStatus(): ConfigurationStatus;
    /**
     * Get publishing options with defaults
     */
    getPublishingOptions(): NonNullable<SharePointConfigFile['sharepoint']>['publishingOptions'];
    /**
     * Get default tags for publishing
     */
    getDefaultTags(): string[];
    /**
     * Get default metadata template
     */
    getDefaultMetadata(): Record<string, any>;
    /**
     * Update SharePoint configuration
     */
    updateConfiguration(updates: Partial<SharePointConfigFile['sharepoint']>): void;
    /**
     * Load configuration from file
     */
    private loadConfiguration;
    /**
     * Save configuration to file
     */
    private saveConfiguration;
    /**
     * Generate environment variables template
     */
    generateEnvTemplate(): string;
    /**
     * Generate setup instructions
     */
    generateSetupInstructions(): string;
}
/**
 * Factory function to create SharePointConfigManager instance
 */
export declare function createSharePointConfigManager(configPath?: string): SharePointConfigManager;
//# sourceMappingURL=SharePointConfigManager.d.ts.map