export interface PromoteResult { ok: boolean; source?: string; dest?: string; reason?: string; } export interface RollbackResult { archived: string[]; archive_dir: string; errors: string[]; } export declare function listCandidates(): string[]; /** * Move one candidate file from lab/candidates/ to me/solutions/ after * schema + ownership checks. Refuses to overwrite an existing solution. * Returns `{ok:false, reason}` for any precondition failure so the CLI * can report exactly why promotion was rejected. */ export declare function promoteCandidate(nameOrPath: string): PromoteResult; /** * Archive evolved-* solutions created at-or-after the given epoch ms. * Looks in ME_SOLUTIONS first (live, promoted candidates) then in * CANDIDATES_DIR (unpromoted). Archive is a timestamp-suffixed * directory so concurrent rollbacks don't clobber each other. * * "evolved" is identified by `source: evolved` in frontmatter; we * deliberately do NOT use filename prefix so a manually-renamed * evolved solution can still be rolled back. */ export declare function rollbackSince(epochMs: number): RollbackResult;