import type { BacklogFile, BacklogSprint, BacklogTicket, LoopConfig } from './types.js'; import type { Logger } from './logger.js'; /** Load and parse backlog.json */ export declare function loadBacklog(cwd: string, config: LoopConfig): BacklogFile; /** * Select the next unscored sprint and atomically lock it. * Uses mkdir for TOCTOU-safe atomic locking — lock is acquired in the same * function as selection, not separately. * * @returns The selected sprint, or null if all sprints are completed. */ export declare function selectNextSprint(backlog: BacklogFile, cwd: string, config: LoopConfig): BacklogSprint | null; /** Select a specific sprint by ID */ export declare function selectSprintById(backlog: BacklogFile, sprintId: string): BacklogSprint | null; /** Release the lock for a sprint */ export declare function releaseLock(cwd: string, config: LoopConfig, sprintId: string): void; /** * Validate that tickets have at least one module file present on disk. * Returns the validated (usable) tickets. */ export declare function validateTickets(tickets: BacklogTicket[], cwd: string, log: Logger): BacklogTicket[]; /** Check if the backlog needs enrichment (version < 1) */ export declare function needsEnrichment(backlog: BacklogFile): boolean; /** Get remaining (unscored) sprint IDs from backlog */ export declare function getRemainingSprintIds(backlog: BacklogFile, cwd: string, config: LoopConfig): string[]; /** * Get sprints whose dependencies are all satisfied (completed). * Filters to remaining (unscored) sprints, then checks depends_on. * Warns if depends_on references sprint IDs not in the backlog or results. */ export declare function getReadySprints(backlog: BacklogFile, cwd: string, config: LoopConfig): BacklogSprint[]; //# sourceMappingURL=backlog.d.ts.map