export interface DriftPlanFile { server: string; relPath: string; kind: string; driftKind: 'untracked' | 'missing' | 'replace'; beforeSha256: string | null; afterSha256: string | null; beforeSize: number | null; afterSize: number | null; } export interface DriftPlan { fingerprint: string; scannedAt: string; servers: string[]; files: DriftPlanFile[]; } export interface DriftResult { deploymentId: string | null; perServer: { server: string; removed: string[]; restored: string[]; skipped: string[] }[]; totalRemoved: number; totalRestored: number; totalServers: number; dryRun: boolean; }