import type { ConfigSnapshot } from '../../../domain/entities/ConfigSnapshot.js'; import type { SnapshotDiff } from '../../../domain/value-objects/SnapshotDiff.js'; /** * IConfigSnapshotUseCase - Inbound Port * Manages config snapshot CRUD, diff, and restore operations */ export interface IConfigSnapshotUseCase { /** * Create a new config snapshot for a server * @param serverName - Name of the server to snapshot * @param description - Optional description for the snapshot * @param scheduleId - Optional schedule ID if triggered by a schedule */ create(serverName: string, description?: string, scheduleId?: string): Promise; /** * List config snapshots, optionally filtered by server */ list(serverName?: string, limit?: number, offset?: number): Promise; /** * Find a config snapshot by ID */ findById(id: string): Promise; /** * Compute the diff between two snapshots */ diff(snapshotId1: string, snapshotId2: string): Promise; /** * Restore server configuration from a snapshot */ restore(snapshotId: string, force?: boolean): Promise; /** * Count config snapshots, optionally filtered by server */ count(serverName?: string): Promise; /** * Delete a config snapshot */ delete(id: string): Promise; } //# sourceMappingURL=IConfigSnapshotUseCase.d.ts.map