/**
 * AC Gate
 *
 * Determines whether external sync should fire after a task completion.
 * Only triggers when a NEW acceptance criteria transitions to fully satisfied.
 *
 * @module core/sync/ac-gate
 */
export interface ACGateResult {
    shouldSync: boolean;
    transitionedACs: string[];
    affectedStoryIds: string[];
}
export declare class ACGate {
    /**
     * Determine whether external sync should fire.
     *
     * Logic:
     * 1. Find which ACs the completed task references
     * 2. If no AC tags → shouldSync true (backward compat)
     * 3. For each referenced AC, check if ALL tasks with that AC are now complete
     * 4. For each newly-complete AC, check if spec.md already had it checked
     * 5. If any AC is newly complete AND not already checked in spec → shouldSync true
     */
    static shouldSyncExternal(specContent: string, tasksContent: string, taskId: string): ACGateResult;
    private static getTaskACs;
    private static buildACTaskMap;
    private static parseSpecCheckedACs;
}
//# sourceMappingURL=ac-gate.d.ts.map