/**
 * BackupRetentionAdapter -- P4-RET-04 Backup retention interface (AC 15)
 *
 * Documented-only in this phase. This interface stubs the backup retention
 * integration for future phases. The retention matrix is exported as a
 * retention-schedule.json artefact at:
 *   GET /api/v1/retention/backup-schedule/:tenantId
 *
 * The operator feeds this JSON to their backup tool (e.g. Veeam, AWS Backup,
 * Azure Backup) to configure backup retention matching the compliance policy.
 * No direct integration is built in this phase.
 *
 * Spec: P4-RET-01 Section 2.4, AC 15
 *
 * @connexum/ai-governance
 */
import type { PolicyMatrix } from './policy-matrix.js';
/**
 * Interface for future backup tool integrations.
 *
 * Implementations will push retention-schedule.json contents to the backup
 * tool's API directly. For this phase, operators download the artefact and
 * apply it manually.
 *
 * Implementing tools (future):
 *   - AWS Backup: Update backup plan rules via AWS SDK
 *   - Azure Backup: Update protection policy via Azure SDK
 *   - Veeam: Update retention settings via Veeam REST API
 *   - Commvault: Update storage policy via Commvault XML API
 */
export interface BackupRetentionAdapter {
    /**
     * Unique identifier for the backup tool (e.g. 'aws-backup', 'azure-backup').
     */
    readonly backupToolType: string;
    /**
     * Push a retention schedule to the backup tool for a tenant.
     *
     * @param tenantId  Tenant to configure.
     * @param schedule  Retention schedule derived from PolicyMatrix.
     * @returns         Promise resolving when the backup tool acknowledges.
     */
    applySchedule(tenantId: string, schedule: RetentionSchedule): Promise<void>;
}
export interface RetentionScheduleEntry {
    dataClass: string;
    retentionDays: number;
    action: 'delete' | 'archive';
    archiveZone?: string;
    jurisdiction: string[];
    policySource: 'contract' | 'pack' | 'default';
    strictestBoundBy: string[];
}
export interface RetentionSchedule {
    tenantId: string;
    contractId: string;
    packBinding: string[];
    generatedAt: string;
    entries: RetentionScheduleEntry[];
}
/**
 * Build a RetentionSchedule artefact for a tenant from PolicyMatrix output.
 * This is the artefact exported at GET /api/v1/retention/backup-schedule/:tenantId.
 *
 * @param tenantId    Tenant to build schedule for.
 * @param contractId  Contract ID for PolicyMatrix resolution.
 * @param packBinding Active packs.
 * @param matrix      Configured PolicyMatrix instance.
 * @returns           RetentionSchedule ready for JSON serialisation and export.
 */
export declare function buildRetentionSchedule(tenantId: string, contractId: string, packBinding: string[], matrix: PolicyMatrix): RetentionSchedule;
//# sourceMappingURL=backup-retention-adapter.d.ts.map