import * as core from "@terrascript/core";
export interface SsmActionDefinitionArgs extends core.SchemaArgs {
    actionSubType: string | core.StringOut;
    instanceIds: core.Array<string> | core.ArrayOut<core.StringOut>;
    region: string | core.StringOut;
}
export declare class SsmActionDefinition extends core.Schema<SsmActionDefinitionArgs> {
    actionSubType: string | core.StringOut;
    instanceIds: core.Array<string> | core.ArrayOut<core.StringOut>;
    region: string | core.StringOut;
}
export interface ScpActionDefinitionArgs extends core.SchemaArgs {
    policyId: string | core.StringOut;
    targetIds: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class ScpActionDefinition extends core.Schema<ScpActionDefinitionArgs> {
    policyId: string | core.StringOut;
    targetIds: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface IamActionDefinitionArgs extends core.SchemaArgs {
    groups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    policyArn: string | core.StringOut;
    roles?: core.Array<string> | core.ArrayOut<core.StringOut>;
    users?: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class IamActionDefinition extends core.Schema<IamActionDefinitionArgs> {
    groups?: core.Array<string> | core.ArrayOut<core.StringOut>;
    policyArn: string | core.StringOut;
    roles?: core.Array<string> | core.ArrayOut<core.StringOut>;
    users?: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface DefinitionArgs extends core.SchemaArgs {
    iamActionDefinition?: IamActionDefinition;
    scpActionDefinition?: ScpActionDefinition;
    ssmActionDefinition?: SsmActionDefinition;
}
export declare class Definition extends core.Schema<DefinitionArgs> {
    iamActionDefinition?: IamActionDefinition;
    scpActionDefinition?: ScpActionDefinition;
    ssmActionDefinition?: SsmActionDefinition;
}
export interface ActionThresholdArgs extends core.SchemaArgs {
    actionThresholdType: string | core.StringOut;
    actionThresholdValue: number | core.NumberOut;
}
export declare class ActionThreshold extends core.Schema<ActionThresholdArgs> {
    actionThresholdType: string | core.StringOut;
    actionThresholdValue: number | core.NumberOut;
}
export interface SubscriberArgs extends core.SchemaArgs {
    address: string | core.StringOut;
    subscriptionType: string | core.StringOut;
}
export declare class Subscriber extends core.Schema<SubscriberArgs> {
    address: string | core.StringOut;
    subscriptionType: string | core.StringOut;
}
export interface BudgetActionArgs extends core.ResourceArgs {
    accountId?: string | core.StringOut;
    actionThreshold: ActionThreshold;
    actionType: string | core.StringOut;
    approvalModel: string | core.StringOut;
    budgetName: string | core.StringOut;
    definition: Definition;
    executionRoleArn: string | core.StringOut;
    notificationType: string | core.StringOut;
    subscriber: core.Array<Subscriber> | core.ArrayOut<Subscriber>;
}
export declare class BudgetAction extends core.Resource<BudgetActionArgs> {
    accountId?: string | core.StringOut;
    actionId: string | core.StringOut;
    actionThreshold: ActionThreshold;
    actionType: string | core.StringOut;
    approvalModel: string | core.StringOut;
    arn: string | core.StringOut;
    budgetName: string | core.StringOut;
    definition: Definition;
    executionRoleArn: string | core.StringOut;
    id: string | core.StringOut;
    notificationType: string | core.StringOut;
    status: string | core.StringOut;
    subscriber: core.Array<Subscriber> | core.ArrayOut<Subscriber>;
    constructor(name: string, args?: BudgetActionArgs);
    getNamespace(): string;
}
//# sourceMappingURL=budget_action.d.ts.map