import * as core from "@terrascript/core";
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 InstanceConfigurationArgs extends core.SchemaArgs {
    blockDeviceMapping?: core.Array<BlockDeviceMapping> | core.ArrayOut<BlockDeviceMapping>;
    image?: string | core.StringOut;
}
export declare class InstanceConfiguration extends core.Schema<InstanceConfigurationArgs> {
    blockDeviceMapping?: core.Array<BlockDeviceMapping> | core.ArrayOut<BlockDeviceMapping>;
    image?: string | core.StringOut;
}
export interface TargetRepositoryArgs extends core.SchemaArgs {
    repositoryName: string | core.StringOut;
    service: string | core.StringOut;
}
export declare class TargetRepository extends core.Schema<TargetRepositoryArgs> {
    repositoryName: string | core.StringOut;
    service: 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 ContainerRecipeArgs extends core.ResourceArgs {
    component: core.Array<Component> | core.ArrayOut<Component>;
    containerType: string | core.StringOut;
    description?: string | core.StringOut;
    dockerfileTemplateData?: string | core.StringOut;
    dockerfileTemplateUri?: string | core.StringOut;
    instanceConfiguration?: InstanceConfiguration;
    kmsKeyId?: string | core.StringOut;
    name: string | core.StringOut;
    parentImage: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    targetRepository: TargetRepository;
    version: string | core.StringOut;
    workingDirectory?: string | core.StringOut;
}
export declare class ContainerRecipe extends core.Resource<ContainerRecipeArgs> {
    arn: string | core.StringOut;
    component: core.Array<Component> | core.ArrayOut<Component>;
    containerType: string | core.StringOut;
    dateCreated: string | core.StringOut;
    description?: string | core.StringOut;
    dockerfileTemplateData?: string | core.StringOut;
    dockerfileTemplateUri?: string | core.StringOut;
    encrypted: boolean | core.BooleanOut;
    id: string | core.StringOut;
    instanceConfiguration?: InstanceConfiguration;
    kmsKeyId?: string | core.StringOut;
    name: string | core.StringOut;
    owner: string | core.StringOut;
    parentImage: string | core.StringOut;
    platform: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    targetRepository: TargetRepository;
    version: string | core.StringOut;
    workingDirectory?: string | core.StringOut;
    constructor(name: string, args?: ContainerRecipeArgs);
    getNamespace(): string;
}
//# sourceMappingURL=container_recipe.d.ts.map