/**
 * 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