import { ServerName } from '../value-objects/ServerName.js'; import { CronExpression } from '../value-objects/CronExpression.js'; /** * ConfigSnapshotSchedule entity data for construction */ export interface ConfigSnapshotScheduleData { id?: string; serverName: ServerName; name: string; cronExpression: string; enabled?: boolean; retentionCount?: number; lastRunAt?: Date | null; lastRunStatus?: 'success' | 'failure' | null; createdAt?: Date; updatedAt?: Date; } /** * Database row structure for config_snapshot_schedules table */ export interface ConfigSnapshotScheduleRow { id: string; server_name: string; name: string; cron_expression: string; enabled: number; retention_count: number; last_run_at: string | null; last_run_status: 'success' | 'failure' | null; created_at: string; updated_at: string; } /** * ConfigSnapshotSchedule Entity * Represents a scheduled configuration snapshot */ export declare class ConfigSnapshotSchedule { private readonly _id; private readonly _serverName; private readonly _name; private readonly _cronExpression; private readonly _enabled; private readonly _retentionCount; private readonly _lastRunAt; private readonly _lastRunStatus; private readonly _createdAt; private readonly _updatedAt; private constructor(); get id(): string; get serverName(): ServerName; get name(): string; get cronExpression(): CronExpression; get enabled(): boolean; get retentionCount(): number; get lastRunAt(): Date | null; get lastRunStatus(): 'success' | 'failure' | null; get createdAt(): Date; get updatedAt(): Date; /** * Create a new ConfigSnapshotSchedule entity */ static create(data: ConfigSnapshotScheduleData): ConfigSnapshotSchedule; /** * Create a ConfigSnapshotSchedule from a database row */ static fromRaw(row: ConfigSnapshotScheduleRow): ConfigSnapshotSchedule; /** * Return a new ConfigSnapshotSchedule with enabled = true */ enable(): ConfigSnapshotSchedule; /** * Return a new ConfigSnapshotSchedule with enabled = false */ disable(): ConfigSnapshotSchedule; /** * Return a new ConfigSnapshotSchedule with the run recorded */ recordRun(status: 'success' | 'failure'): ConfigSnapshotSchedule; /** * Convert to plain object for serialization */ toJSON(): { id: string; serverName: string; name: string; cronExpression: string; cronHumanReadable: string; enabled: boolean; retentionCount: number; lastRunAt: string | null; lastRunStatus: 'success' | 'failure' | null; createdAt: string; updatedAt: string; }; } //# sourceMappingURL=ConfigSnapshotSchedule.d.ts.map