import { Spawn } from '@codification/cutwater-build-core';
import { PrepareImageContextTask, PrepareImageContextTaskConfig } from '@codification/cutwater-build-docker/lib/tasks/PrepareImageContextTask';
import { ImageConfig } from '@codification/cutwater-build-docker/lib/types/ImageConfig';
import { HttpService } from '@codification/cutwater-node-core';
export interface LayerConfig {
    layerName: string;
    versionNumber: number;
    region: string;
}
export interface HandlerImageConfig extends ImageConfig {
    handler: string;
    options?: string | string[];
    dockerfile?: string;
    layers?: LayerConfig | LayerConfig[];
}
export interface PrepareLambdaImageContextTaskConfig extends PrepareImageContextTaskConfig<HandlerImageConfig> {
    nodeVersion: string;
    spawn: Spawn;
    http: HttpService;
}
export declare class PrepareLambdaImageContextTask<T extends PrepareLambdaImageContextTaskConfig = PrepareLambdaImageContextTaskConfig> extends PrepareImageContextTask<HandlerImageConfig, T> {
    static readonly DEFAULT_DOCKERFILE = "AwsLambdaDockerfile";
    constructor(name?: string, defaultConfig?: Partial<T>);
    private toOptions;
    private processHandlerImageConfigs;
    private toAwsCommandArgs;
    private toLayerUrl;
    private toLayerName;
    private toLayerFileReference;
    private toLayerDirectoryReference;
    private downloadLayer;
    private findRequiredLayers;
    private prepareLayers;
    private toLayersCopyCommands;
    private processDockerfiles;
    executeTask(): Promise<void>;
}
//# sourceMappingURL=PrepareLambdaImageContextTask.d.ts.map