import { type CommandContext, type GlobalOptions } from '../../../app/command-context.js';
import { type ActiveProjectResolution } from '../../../config/oat-config.js';
import { Command } from 'commander';
import { type ProjectLogSection, type ProjectLogScope, type ProjectLogType } from './grammar.js';
export declare const PROJECT_LOG_FILENAME = "project-log.md";
export declare const SYNTHESIS_PENDING_HEADING = "## End-of-run synthesis (pending \u2014 do not skip at project completion)";
export declare const SYNTHESIS_COMPLETE_HEADING = "## End-of-run synthesis";
export interface ProjectLogCheckResult {
    status: 'ok' | 'absent' | 'synthesis_pending';
    logPath: string | null;
    entryCounts: {
        structural: number;
        judgment: Record<ProjectLogType, number>;
    };
    scopeCounts: Record<ProjectLogScope, number>;
    lastEntryDate: string | null;
    synthesisPending: boolean;
    grammarViolations: string[];
}
export type ParsedProjectLogEntry = {
    class: 'judgment';
    heading: string;
    date: string;
    scope: ProjectLogScope;
    type: ProjectLogType;
    area: string;
    body: string;
} | {
    class: 'structural';
    heading: string;
    date: string;
    producer: string;
    ref: string;
    body: string;
};
export interface ParsedProjectLog {
    entries: ParsedProjectLogEntry[];
    grammarViolations: string[];
}
export type ProjectLogSynthesisSection = {
    status: 'pending';
    section: ProjectLogSection;
} | {
    status: 'complete';
    section: ProjectLogSection;
} | {
    status: 'missing';
} | {
    status: 'ambiguous';
};
export interface CheckProjectLogInput {
    repoRoot: string;
    project?: string;
}
export interface CheckProjectLogDependencies {
    resolveActiveProject: (repoRoot: string) => Promise<ActiveProjectResolution>;
}
export interface ProjectLogCheckCommandDependencies extends CheckProjectLogDependencies {
    buildCommandContext: (options: GlobalOptions) => CommandContext;
    resolveProjectRoot: (cwd: string) => Promise<string>;
}
export declare function findCanonicalProjectLogSynthesisSection(content: string): ProjectLogSynthesisSection;
export declare function parseProjectLogEntries(content: string): ParsedProjectLog;
export declare function checkProjectLog(input: CheckProjectLogInput, overrides?: Partial<CheckProjectLogDependencies>): Promise<ProjectLogCheckResult>;
export declare function createProjectLogCheckCommand(overrides?: Partial<ProjectLogCheckCommandDependencies>): Command;
//# sourceMappingURL=check.d.ts.map