import { buildCommandContext, type CommandContext } from '../../../app/command-context.js';
import { type OatConfig, type OatLocalConfig } from '../../../config/oat-config.js';
import { resolveArchiveProjectTarget, resolvePrimaryRepoRoot, type ArchiveProjectOnCompletionOptions, type ArchiveProjectOnCompletionResult } from './archive-utils.js';
export interface ArchivePushOptions {
    dryRun?: boolean;
}
export interface ProjectArchivePushCommandDependencies {
    buildCommandContext: (options: Parameters<typeof buildCommandContext>[0]) => CommandContext;
    resolveProjectRoot: (cwd: string) => Promise<string>;
    readOatConfig: (repoRoot: string) => Promise<OatConfig>;
    readOatLocalConfig: (repoRoot: string) => Promise<OatLocalConfig>;
    resolveProjectsRoot: (repoRoot: string, env: NodeJS.ProcessEnv) => Promise<string>;
    resolvePrimaryRepoRoot: typeof resolvePrimaryRepoRoot;
    resolveArchiveProjectTarget: typeof resolveArchiveProjectTarget;
    archiveProjectOnCompletion: (options: ArchiveProjectOnCompletionOptions) => Promise<ArchiveProjectOnCompletionResult>;
    processEnv: NodeJS.ProcessEnv;
    timestamp: () => string;
}
export declare function defaultProjectArchivePushCommandDependencies(): ProjectArchivePushCommandDependencies;
export declare function runArchivePushCommand(dependencies: ProjectArchivePushCommandDependencies, projectPathArg: string | undefined, options: ArchivePushOptions, context: CommandContext): Promise<void>;
//# sourceMappingURL=push-runner.d.ts.map