import { INormalizedHttpLocalConfig } from '../types'; export interface ILocalBuildResult { imageUri: string; imageDigest?: string; buildDurationMs: number; pushDurationMs: number; durationMs: number; } export interface IExecResult { ok: boolean; stdout: string; stderr: string; } export interface ILocalCommandOptions { env?: NodeJS.ProcessEnv; input?: string; } /** 可注入依赖:命令执行与文件系统检查 */ export interface ILocalBuilderDeps { runCommand: (command: string, args: string[], options?: ILocalCommandOptions) => Promise; existsSync: (target: string) => boolean; isDirectory: (target: string) => boolean; isFile: (target: string) => boolean; } /** 本地镜像构建阶段结果 */ export interface ILocalImageBuildResult { imageUri: string; buildDurationMs: number; } export interface ILocalBuilderOptions { deps?: ILocalBuilderDeps; commandOptions?: ILocalCommandOptions; } /** 本地构建镜像,不执行推送。 */ export declare function buildLocalImage(config: INormalizedHttpLocalConfig, onLog?: (line: string) => void, options?: ILocalBuilderOptions): Promise; /** 推送已构建镜像,并尽力查询远端 digest。 */ export declare function pushLocalImage(imageUri: string, onLog?: (line: string) => void, options?: ILocalBuilderOptions): Promise<{ imageDigest?: string; pushDurationMs: number; }>; export declare function loginDockerRegistry(registry: string, credential: { username: string; secret: string; }, options?: ILocalBuilderOptions): Promise; export declare function createTemporaryDockerConfig(): { env: NodeJS.ProcessEnv; cleanup: () => void; }; /** * 本地构建镜像并推送到目标仓库。 * * 保留组合入口以兼容已有调用;需要实时阶段进度的编排器应分别调用 * buildLocalImage 与 pushLocalImage。 */ export declare function buildAndPushImage(config: INormalizedHttpLocalConfig, onLog?: (line: string) => void, deps?: ILocalBuilderDeps): Promise;