import * as core from "@terrascript/core";
export interface StringEqualsArgs extends core.SchemaArgs {
    key: string | core.StringOut;
    value: string | core.StringOut;
}
export declare class StringEquals extends core.Schema<StringEqualsArgs> {
    key: string | core.StringOut;
    value: string | core.StringOut;
}
export interface StringLikeArgs extends core.SchemaArgs {
    key: string | core.StringOut;
    value: string | core.StringOut;
}
export declare class StringLike extends core.Schema<StringLikeArgs> {
    key: string | core.StringOut;
    value: string | core.StringOut;
}
export interface StringNotEqualsArgs extends core.SchemaArgs {
    key: string | core.StringOut;
    value: string | core.StringOut;
}
export declare class StringNotEquals extends core.Schema<StringNotEqualsArgs> {
    key: string | core.StringOut;
    value: string | core.StringOut;
}
export interface StringNotLikeArgs extends core.SchemaArgs {
    key: string | core.StringOut;
    value: string | core.StringOut;
}
export declare class StringNotLike extends core.Schema<StringNotLikeArgs> {
    key: string | core.StringOut;
    value: string | core.StringOut;
}
export interface ConditionArgs extends core.SchemaArgs {
    stringEquals?: core.Array<StringEquals> | core.ArrayOut<StringEquals>;
    stringLike?: core.Array<StringLike> | core.ArrayOut<StringLike>;
    stringNotEquals?: core.Array<StringNotEquals> | core.ArrayOut<StringNotEquals>;
    stringNotLike?: core.Array<StringNotLike> | core.ArrayOut<StringNotLike>;
}
export declare class Condition extends core.Schema<ConditionArgs> {
    stringEquals?: core.Array<StringEquals> | core.ArrayOut<StringEquals>;
    stringLike?: core.Array<StringLike> | core.ArrayOut<StringLike>;
    stringNotEquals?: core.Array<StringNotEquals> | core.ArrayOut<StringNotEquals>;
    stringNotLike?: core.Array<StringNotLike> | core.ArrayOut<StringNotLike>;
}
export interface SelectionTagArgs extends core.SchemaArgs {
    key: string | core.StringOut;
    type: string | core.StringOut;
    value: string | core.StringOut;
}
export declare class SelectionTag extends core.Schema<SelectionTagArgs> {
    key: string | core.StringOut;
    type: string | core.StringOut;
    value: string | core.StringOut;
}
export interface SelectionArgs extends core.ResourceArgs {
    condition?: core.Array<Condition> | core.ArrayOut<Condition>;
    iamRoleArn: string | core.StringOut;
    name: string | core.StringOut;
    notResources?: core.Array<string> | core.ArrayOut<core.StringOut>;
    planId: string | core.StringOut;
    resources?: core.Array<string> | core.ArrayOut<core.StringOut>;
    selectionTag?: core.Array<SelectionTag> | core.ArrayOut<SelectionTag>;
}
export declare class Selection extends core.Resource<SelectionArgs> {
    condition?: core.Array<Condition> | core.ArrayOut<Condition>;
    iamRoleArn: string | core.StringOut;
    id: string | core.StringOut;
    name: string | core.StringOut;
    notResources?: core.Array<string> | core.ArrayOut<core.StringOut>;
    planId: string | core.StringOut;
    resources?: core.Array<string> | core.ArrayOut<core.StringOut>;
    selectionTag?: core.Array<SelectionTag> | core.ArrayOut<SelectionTag>;
    constructor(name: string, args?: SelectionArgs);
    getNamespace(): string;
}
//# sourceMappingURL=selection.d.ts.map