import * as core from "@terrascript/core";
export interface ActionTargetArgs extends core.SchemaArgs {
    key: string | core.StringOut;
    value: string | core.StringOut;
}
export declare class ActionTarget extends core.Schema<ActionTargetArgs> {
    key: string | core.StringOut;
    value: string | core.StringOut;
}
export interface ParameterArgs extends core.SchemaArgs {
    key: string | core.StringOut;
    value: string | core.StringOut;
}
export declare class Parameter extends core.Schema<ParameterArgs> {
    key: string | core.StringOut;
    value: string | core.StringOut;
}
export interface ActionArgs extends core.SchemaArgs {
    actionId: string | core.StringOut;
    description?: string | core.StringOut;
    name: string | core.StringOut;
    parameter?: core.Array<Parameter> | core.ArrayOut<Parameter>;
    startAfter?: core.Array<string> | core.ArrayOut<core.StringOut>;
    target?: ActionTarget;
}
export declare class Action extends core.Schema<ActionArgs> {
    actionId: string | core.StringOut;
    description?: string | core.StringOut;
    name: string | core.StringOut;
    parameter?: core.Array<Parameter> | core.ArrayOut<Parameter>;
    startAfter?: core.Array<string> | core.ArrayOut<core.StringOut>;
    target?: ActionTarget;
}
export interface StopConditionArgs extends core.SchemaArgs {
    source: string | core.StringOut;
    value?: string | core.StringOut;
}
export declare class StopCondition extends core.Schema<StopConditionArgs> {
    source: string | core.StringOut;
    value?: string | core.StringOut;
}
export interface FilterArgs extends core.SchemaArgs {
    path: string | core.StringOut;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class Filter extends core.Schema<FilterArgs> {
    path: string | core.StringOut;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface ResourceTagArgs extends core.SchemaArgs {
    key: string | core.StringOut;
    value: string | core.StringOut;
}
export declare class ResourceTag extends core.Schema<ResourceTagArgs> {
    key: string | core.StringOut;
    value: string | core.StringOut;
}
export interface TargetArgs extends core.SchemaArgs {
    filter?: core.Array<Filter> | core.ArrayOut<Filter>;
    name: string | core.StringOut;
    resourceArns?: core.Array<string> | core.ArrayOut<core.StringOut>;
    resourceTag?: core.Array<ResourceTag> | core.ArrayOut<ResourceTag>;
    resourceType: string | core.StringOut;
    selectionMode: string | core.StringOut;
}
export declare class Target extends core.Schema<TargetArgs> {
    filter?: core.Array<Filter> | core.ArrayOut<Filter>;
    name: string | core.StringOut;
    resourceArns?: core.Array<string> | core.ArrayOut<core.StringOut>;
    resourceTag?: core.Array<ResourceTag> | core.ArrayOut<ResourceTag>;
    resourceType: string | core.StringOut;
    selectionMode: string | core.StringOut;
}
export interface ExperimentTemplateArgs extends core.ResourceArgs {
    action: core.Array<Action> | core.ArrayOut<Action>;
    description: string | core.StringOut;
    roleArn: string | core.StringOut;
    stopCondition: core.Array<StopCondition> | core.ArrayOut<StopCondition>;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    target?: core.Array<Target> | core.ArrayOut<Target>;
}
export declare class ExperimentTemplate extends core.Resource<ExperimentTemplateArgs> {
    action: core.Array<Action> | core.ArrayOut<Action>;
    description: string | core.StringOut;
    id: string | core.StringOut;
    roleArn: string | core.StringOut;
    stopCondition: core.Array<StopCondition> | core.ArrayOut<StopCondition>;
    tags?: core.Map<string, string> | core.MapOut<core.StringOut>;
    tagsAll?: core.Map<string, string> | core.MapOut<core.StringOut>;
    target?: core.Array<Target> | core.ArrayOut<Target>;
    constructor(name: string, args?: ExperimentTemplateArgs);
    getNamespace(): string;
}
//# sourceMappingURL=experiment_template.d.ts.map