/** * Integration uploader module - provides extensible file upload capability * for different CMS integrations. * * Each integration uploader implements a common interface: * - canHandle(sourceIntegration) - returns true if this uploader handles the integration type * - upload({ config, localFilePath, sourceIntegration, log }) - uploads the file */ /** * Finds the appropriate uploader for a given source integration. * @param {Object} sourceIntegration - Source integration metadata from step result * @returns {Object|null} Uploader instance or null if none found */ declare function getUploader(sourceIntegration: any): any; /** * Collects all changed files from a test report that have source integrations. * @param {Object} report - Test execution report * @returns {Array<{localPath: string, sourceIntegration: Object, stepId: string, testId: string, specId: string}>} Array of changed file objects containing: * - localPath: Path to the local file * - sourceIntegration: Source integration metadata (type, integrationName, filePath, contentPath) * - stepId: ID of the step that produced this file * - testId: ID of the test containing this step * - specId: ID of the spec containing this test */ declare function collectChangedFiles(report: any): any[]; /** * Uploads all changed files back to their source integrations. * Uses best-effort approach - continues uploading even if individual uploads fail. * Uploads are executed in parallel using Promise.allSettled for better performance. * @param {Object} options - Upload options * @param {Object} options.config - Doc Detective config containing integration configurations * @param {Object} options.report - Test execution report from runSpecs * @param {Function} options.log - Logging function with signature (config, level, message) * @returns {Promise<{total: number, successful: number, failed: number, skipped: number, details: Array<{localPath: string, status: string, description?: string, reason?: string}>}>} Upload results summary with: * - total: Total number of changed files found * - successful: Number of files successfully uploaded * - failed: Number of files that failed to upload * - skipped: Number of files skipped (no uploader or config found) * - details: Array of per-file results with localPath, status (PASS/FAIL/SKIPPED), and description or reason */ declare function uploadChangedFiles({ config, report, log }: { config: any; report: any; log: any; }): Promise<{ total: number; successful: number; failed: number; skipped: number; details: any[]; }>; /** * Gets the integration configuration for a source integration. * @param {Object} config - Doc Detective config * @param {Object} sourceIntegration - Source integration metadata * @returns {Object|null} Integration configuration or null if not found */ declare function getIntegrationConfig(config: any, sourceIntegration: any): any; /** * Registers a new uploader. * @param {Object} uploader - Uploader instance implementing canHandle and upload methods */ declare function registerUploader(uploader: any): void; export { getUploader, collectChangedFiles, uploadChangedFiles, getIntegrationConfig, registerUploader, }; //# sourceMappingURL=index.d.ts.map