import { type CommandContext, type GlobalOptions } from '../../../app/command-context.js';
import { type ActiveProjectResolution } from '../../../config/oat-config.js';
import { type ResolvedConfig } from '../../../config/resolve.js';
import { Command } from 'commander';
export interface ProjectLogArtifactTarget {
    filename: string;
    summaryHeading?: string;
}
export declare const DEFAULT_PROJECT_LOG_ARTIFACT_TARGET: ProjectLogArtifactTarget;
export interface RollupProjectLogInput {
    repoRoot: string;
    home?: string;
    project?: string;
    summaryPath?: string;
    artifactTarget?: ProjectLogArtifactTarget;
}
export interface ProjectLogRollupResult {
    status: 'ok' | 'failed';
    summarySection: 'written' | 'updated';
    ledgerOutcome: 'appended' | 'deduplicated' | 'skipped_permitted' | 'failed';
    entriesRolledUp: number;
}
export interface RollupProjectLogDependencies {
    resolveActiveProject: (repoRoot: string) => Promise<ActiveProjectResolution>;
    resolveEffectiveConfig: (repoRoot: string, userConfigDir: string, env?: NodeJS.ProcessEnv) => Promise<ResolvedConfig>;
}
export interface ProjectLogRollupCommandDependencies extends RollupProjectLogDependencies {
    buildCommandContext: (options: GlobalOptions) => CommandContext;
    resolveProjectRoot: (cwd: string) => Promise<string>;
}
interface ProjectLogLedgerTarget {
    path: string;
    explicitlyConfigured: boolean;
    defaultReferenceLayer: string;
}
export declare function resolveProjectLogLedgerTarget(repoRoot: string, home: string, dependencies?: Pick<RollupProjectLogDependencies, 'resolveEffectiveConfig'>): Promise<ProjectLogLedgerTarget>;
export declare function rollupProjectLog(input: RollupProjectLogInput, overrides?: Partial<RollupProjectLogDependencies>): Promise<ProjectLogRollupResult>;
export declare function createProjectLogRollupCommand(overrides?: Partial<ProjectLogRollupCommandDependencies>): Command;
export {};
//# sourceMappingURL=rollup.d.ts.map