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 AppendProjectLogInput {
    repoRoot: string;
    home?: string;
    project?: string;
    structural?: boolean;
    type?: string;
    scope?: string;
    area?: string;
    producer?: string;
    ref?: string;
    body?: string;
    versionNote?: string;
}
export type ProjectLogAppendResult = {
    status: 'appended';
    logPath: string;
    heading: string;
    created: boolean;
} | {
    status: 'skipped';
    reason: 'projectLog=false';
};
export interface AppendProjectLogDependencies {
    resolveActiveProject: (repoRoot: string) => Promise<ActiveProjectResolution>;
    resolveEffectiveConfig: (repoRoot: string, userConfigDir: string, env?: NodeJS.ProcessEnv) => Promise<ResolvedConfig>;
    resolveAssetsRoot: () => Promise<string>;
    now: () => Date;
}
export interface ProjectLogAppendCommandDependencies extends AppendProjectLogDependencies {
    buildCommandContext: (options: GlobalOptions) => CommandContext;
    resolveProjectRoot: (cwd: string) => Promise<string>;
    readStdin: () => Promise<string>;
}
export declare function instantiateProjectLogTemplate(template: string, projectName: string, date: string): string;
export declare function appendProjectLog(input: AppendProjectLogInput, overrides?: Partial<AppendProjectLogDependencies>): Promise<ProjectLogAppendResult>;
export declare function createProjectLogAppendCommand(overrides?: Partial<ProjectLogAppendCommandDependencies>): Command;
//# sourceMappingURL=append.d.ts.map