import * as core from "@terrascript/core";
export interface SystemsManagerAgentArgs extends core.SchemaArgs {
    uninstallAfterBuild: boolean | core.BooleanOut;
}
export declare class SystemsManagerAgent extends core.Schema<SystemsManagerAgentArgs> {
    uninstallAfterBuild: boolean | core.BooleanOut;
}
export interface EbsArgs extends core.SchemaArgs {
    deleteOnTermination?: string | core.StringOut;
    encrypted?: string | core.StringOut;
    iops?: number | core.NumberOut;
    kmsKeyId?: string | core.StringOut;
    snapshotId?: string | core.StringOut;
    throughput?: number | core.NumberOut;
    volumeSize?: number | core.NumberOut;
    volumeType?: string | core.StringOut;
}
export declare class Ebs extends core.Schema<EbsArgs> {
    deleteOnTermination?: string | core.StringOut;
    encrypted?: string | core.StringOut;
    iops?: number | core.NumberOut;
    kmsKeyId?: string | core.StringOut;
    snapshotId?: string | core.StringOut;
    throughput?: number | core.NumberOut;
    volumeSize?: number | core.NumberOut;
    volumeType?: string | core.StringOut;
}
export interface BlockDeviceMappingArgs extends core.SchemaArgs {
    deviceName?: string | core.StringOut;
    ebs?: Ebs;
    noDevice?: boolean | core.BooleanOut;
    virtualName?: string | core.StringOut;
}
export declare class BlockDeviceMapping extends core.Schema<BlockDeviceMappingArgs> {
    deviceName?: string | core.StringOut;
    ebs?: Ebs;
    noDevice?: boolean | core.BooleanOut;
    virtualName?: string | core.StringOut;
}
export interface ParameterArgs extends core.SchemaArgs {
    name: string | core.StringOut;
    value: string | core.StringOut;
}
export declare class Parameter extends core.Schema<ParameterArgs> {
    name: string | core.StringOut;
    value: string | core.StringOut;
}
export interface ComponentArgs extends core.SchemaArgs {
    componentArn: string | core.StringOut;
    parameter?: core.Array<Parameter> | core.ArrayOut<Parameter>;
}
export declare class Component extends core.Schema<ComponentArgs> {
    componentArn: string | core.StringOut;
    parameter?: core.Array<Parameter> | core.ArrayOut<Parameter>;
}
export interface ImageRecipeArgs extends core.ResourceArgs {
    blockDeviceMapping?: core.Array<BlockDeviceMapping> | core.ArrayOut<BlockDeviceMapping>;
    component: core.Array<Component> | core.ArrayOut<Component>;
    description?: string | core.StringOut;
    name: string | core.StringOut;
    parentImage: string | core.StringOut;
    systemsManagerAgent?: SystemsManagerAgent;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    userDataBase64?: string | core.StringOut;
    version: string | core.StringOut;
    workingDirectory?: string | core.StringOut;
}
export declare class ImageRecipe extends core.Resource<ImageRecipeArgs> {
    arn: string | core.StringOut;
    blockDeviceMapping?: core.Array<BlockDeviceMapping> | core.ArrayOut<BlockDeviceMapping>;
    component: core.Array<Component> | core.ArrayOut<Component>;
    dateCreated: string | core.StringOut;
    description?: string | core.StringOut;
    id: string | core.StringOut;
    name: string | core.StringOut;
    owner: string | core.StringOut;
    parentImage: string | core.StringOut;
    platform: string | core.StringOut;
    systemsManagerAgent?: SystemsManagerAgent;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    userDataBase64?: string | core.StringOut;
    version: string | core.StringOut;
    workingDirectory?: string | core.StringOut;
    constructor(name: string, args?: ImageRecipeArgs);
    getNamespace(): string;
}
//# sourceMappingURL=image_recipe.d.ts.map