import type { ModuleLifecycleContext } from "../../contracts/module-contract.js";
import type { ImprovementHeuristicVersion } from "./ingest.js";
export declare function resolveImprovementHeuristicVersion(ctx: ModuleLifecycleContext): ImprovementHeuristicVersion;
export declare function getMaxRecommendationCandidatesPerRun(ctx: ModuleLifecycleContext): number;
export type GenerateRecommendationsArgs = {
    /** Directory relative to workspace containing agent `*.jsonl` transcripts (default: agent-transcripts). */
    transcriptsRoot?: string;
    /** When both set with toTag, run git diff evidence between tags. */
    fromTag?: string;
    toTag?: string;
    /** When true, compute candidates and simulate creates without persisting tasks, lineage, or improvement state. */
    dryRun?: boolean;
    /** When tasks.planningGenerationPolicy is require, must match current planning row before persist. */
    expectedPlanningGeneration?: number;
};
export declare function runGenerateRecommendations(ctx: ModuleLifecycleContext, args: GenerateRecommendationsArgs): Promise<{
    runId: string;
    created: string[];
    skipped: number;
    candidates: number;
    dryRun?: boolean;
    simulatedCreates?: string[];
    dedupe: {
        skippedDuplicateEvidenceKey: number;
        skippedExistingTaskId: number;
        cappedRemaining: number;
    };
}>;
