/**
 * Container-image build + push for serverless apps using `packaging: 'image'`.
 *
 * Stages a Docker build context (app files + a generated Dockerfile, plus the
 * PHP runtime assets for PHP apps), builds the image, ensures an ECR repository,
 * logs in, and pushes a content-tagged image. Returns the image URI the deploy
 * orchestrator passes to CloudFormation + UpdateFunctionCode.
 */
import type { ServerlessAppConfig } from '@ts-cloud/core';
export interface BuildImageOptions {
    app: ServerlessAppConfig;
    projectRoot: string;
    region: string;
    /** ECR repository name (created if missing). */
    repository: string;
    /** Skip local build hooks. */
    skipBuild?: boolean;
    onStep?: (m: string) => void;
}
export interface BuiltImage {
    /** Full image URI including the content tag (repoUri:tag). */
    imageUri: string;
    /** The content tag (artifact hash). */
    tag: string;
    /** Lambda handler strings per function. */
    handlers: {
        http: string;
        queue: string;
        cli: string;
    };
}
export declare function buildAndPushServerlessImage(opts: BuildImageOptions): Promise<BuiltImage>;
