import * as core from "@terrascript/core";
export interface LaunchPermissionArgs extends core.SchemaArgs {
    organizationArns: core.Array<string> | core.ArrayOut<core.StringOut>;
    organizationalUnitArns: core.Array<string> | core.ArrayOut<core.StringOut>;
    userGroups: core.Array<string> | core.ArrayOut<core.StringOut>;
    userIds: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class LaunchPermission extends core.Schema<LaunchPermissionArgs> {
    organizationArns: core.Array<string> | core.ArrayOut<core.StringOut>;
    organizationalUnitArns: core.Array<string> | core.ArrayOut<core.StringOut>;
    userGroups: core.Array<string> | core.ArrayOut<core.StringOut>;
    userIds: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface AmiDistributionConfigurationArgs extends core.SchemaArgs {
    amiTags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    description: string | core.StringOut;
    kmsKeyId: string | core.StringOut;
    launchPermission: core.Array<LaunchPermission> | core.ArrayOut<LaunchPermission>;
    name: string | core.StringOut;
    targetAccountIds: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class AmiDistributionConfiguration extends core.Schema<AmiDistributionConfigurationArgs> {
    amiTags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    description: string | core.StringOut;
    kmsKeyId: string | core.StringOut;
    launchPermission: core.Array<LaunchPermission> | core.ArrayOut<LaunchPermission>;
    name: string | core.StringOut;
    targetAccountIds: core.Array<string> | core.ArrayOut<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 ContainerDistributionConfigurationArgs extends core.SchemaArgs {
    containerTags: core.Array<string> | core.ArrayOut<core.StringOut>;
    description: string | core.StringOut;
    targetRepository: core.Array<TargetRepository> | core.ArrayOut<TargetRepository>;
}
export declare class ContainerDistributionConfiguration extends core.Schema<ContainerDistributionConfigurationArgs> {
    containerTags: core.Array<string> | core.ArrayOut<core.StringOut>;
    description: string | core.StringOut;
    targetRepository: core.Array<TargetRepository> | core.ArrayOut<TargetRepository>;
}
export interface SnapshotConfigurationArgs extends core.SchemaArgs {
    targetResourceCount: number | core.NumberOut;
}
export declare class SnapshotConfiguration extends core.Schema<SnapshotConfigurationArgs> {
    targetResourceCount: number | core.NumberOut;
}
export interface LaunchTemplateArgs extends core.SchemaArgs {
    launchTemplateId: string | core.StringOut;
    launchTemplateName: string | core.StringOut;
    launchTemplateVersion: string | core.StringOut;
}
export declare class LaunchTemplate extends core.Schema<LaunchTemplateArgs> {
    launchTemplateId: string | core.StringOut;
    launchTemplateName: string | core.StringOut;
    launchTemplateVersion: string | core.StringOut;
}
export interface FastLaunchConfigurationArgs extends core.SchemaArgs {
    accountId: string | core.StringOut;
    enabled: boolean | core.BooleanOut;
    launchTemplate: core.Array<LaunchTemplate> | core.ArrayOut<LaunchTemplate>;
    maxParallelLaunches: number | core.NumberOut;
    snapshotConfiguration: core.Array<SnapshotConfiguration> | core.ArrayOut<SnapshotConfiguration>;
}
export declare class FastLaunchConfiguration extends core.Schema<FastLaunchConfigurationArgs> {
    accountId: string | core.StringOut;
    enabled: boolean | core.BooleanOut;
    launchTemplate: core.Array<LaunchTemplate> | core.ArrayOut<LaunchTemplate>;
    maxParallelLaunches: number | core.NumberOut;
    snapshotConfiguration: core.Array<SnapshotConfiguration> | core.ArrayOut<SnapshotConfiguration>;
}
export interface LaunchTemplateConfigurationArgs extends core.SchemaArgs {
    accountId: string | core.StringOut;
    default: boolean | core.BooleanOut;
    launchTemplateId: string | core.StringOut;
}
export declare class LaunchTemplateConfiguration extends core.Schema<LaunchTemplateConfigurationArgs> {
    accountId: string | core.StringOut;
    default: boolean | core.BooleanOut;
    launchTemplateId: string | core.StringOut;
}
export interface DistributionArgs extends core.SchemaArgs {
    amiDistributionConfiguration: core.Array<AmiDistributionConfiguration> | core.ArrayOut<AmiDistributionConfiguration>;
    containerDistributionConfiguration: core.Array<ContainerDistributionConfiguration> | core.ArrayOut<ContainerDistributionConfiguration>;
    fastLaunchConfiguration: core.Array<FastLaunchConfiguration> | core.ArrayOut<FastLaunchConfiguration>;
    launchTemplateConfiguration: core.Array<LaunchTemplateConfiguration> | core.ArrayOut<LaunchTemplateConfiguration>;
    licenseConfigurationArns: core.Array<string> | core.ArrayOut<core.StringOut>;
    region: string | core.StringOut;
}
export declare class Distribution extends core.Schema<DistributionArgs> {
    amiDistributionConfiguration: core.Array<AmiDistributionConfiguration> | core.ArrayOut<AmiDistributionConfiguration>;
    containerDistributionConfiguration: core.Array<ContainerDistributionConfiguration> | core.ArrayOut<ContainerDistributionConfiguration>;
    fastLaunchConfiguration: core.Array<FastLaunchConfiguration> | core.ArrayOut<FastLaunchConfiguration>;
    launchTemplateConfiguration: core.Array<LaunchTemplateConfiguration> | core.ArrayOut<LaunchTemplateConfiguration>;
    licenseConfigurationArns: core.Array<string> | core.ArrayOut<core.StringOut>;
    region: string | core.StringOut;
}
export interface DsDistributionConfigurationArgs {
    arn: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
}
export declare class DsDistributionConfiguration extends core.Data<DsDistributionConfigurationArgs> {
    arn: string | core.StringOut;
    dateCreated: string | core.StringOut;
    dateUpdated: string | core.StringOut;
    description: string | core.StringOut;
    distribution: core.Array<Distribution> | core.ArrayOut<Distribution>;
    id: string | core.StringOut;
    name: string | core.StringOut;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    constructor(name: string, args?: DsDistributionConfigurationArgs);
    getNamespace(): string;
}
//# sourceMappingURL=ds_distribution_configuration.d.ts.map