/**
 * Release guards - epic-completeness and double-listing checks.
 *
 * Pre-release validation to ensure all tasks in an epic are accounted for
 * and no task appears in multiple releases.
 *
 * @task T4454
 * @epic T4454
 */
import type { TaskRef } from '@cleocode/contracts';
import type { DataAccessor } from '../store/data-accessor.js';
/** Epic completeness result. */
export interface EpicCompletenessResult {
    hasIncomplete: boolean;
    epics: Array<{
        epicId: string;
        epicTitle: string;
        totalChildren: number;
        includedChildren: number;
        missingChildren: TaskRef[];
    }>;
    orphanTasks: string[];
}
/**
 * Check epic completeness for a set of release task IDs.
 * Verifies all children of each referenced epic are included.
 */
export declare function checkEpicCompleteness(releaseTaskIds: string[], cwd?: string, accessor?: DataAccessor): Promise<EpicCompletenessResult>;
/** Double-listing check result. */
export interface DoubleListingResult {
    hasDoubleListing: boolean;
    duplicates: Array<{
        taskId: string;
        releases: string[];
    }>;
}
/**
 * Check if any tasks are listed in multiple releases.
 */
export declare function checkDoubleListing(releaseTaskIds: string[], existingReleases: Array<{
    version: string;
    tasks: string[];
}>): DoubleListingResult;
//# sourceMappingURL=guards.d.ts.map