import { ServerName } from '../value-objects/ServerName.js'; import { ConfigSnapshotFile, type ConfigSnapshotFileData } from '../value-objects/ConfigSnapshotFile.js'; /** * ConfigSnapshot entity data for reconstruction */ export interface ConfigSnapshotData { id: string; serverName: ServerName; createdAt: Date; description: string; files: ConfigSnapshotFile[]; scheduleId?: string; } /** * Database row structure for config_snapshots table */ export interface ConfigSnapshotRow { id: string; server_name: string; created_at: string; description: string; files: string; schedule_id: string | null; } /** * ConfigSnapshot Entity * Represents a point-in-time capture of server configuration files */ export declare class ConfigSnapshot { private readonly _id; private readonly _serverName; private readonly _createdAt; private readonly _description; private readonly _files; private readonly _scheduleId?; private constructor(); get id(): string; get serverName(): ServerName; get createdAt(): Date; get description(): string; get files(): readonly ConfigSnapshotFile[]; get scheduleId(): string | undefined; /** * Create a new ConfigSnapshot entity */ static create(serverName: ServerName, files: ConfigSnapshotFile[], description?: string, scheduleId?: string): ConfigSnapshot; /** * Create a ConfigSnapshot from explicit data (e.g., from database reconstruction) */ static fromData(data: ConfigSnapshotData): ConfigSnapshot; /** * Create a ConfigSnapshot from a database row */ static fromRaw(row: ConfigSnapshotRow): ConfigSnapshot; /** * Convert to plain object for serialization */ toJSON(): { id: string; serverName: string; createdAt: string; description: string; files: ConfigSnapshotFileData[]; scheduleId?: string; }; } //# sourceMappingURL=ConfigSnapshot.d.ts.map