import * as core from "@terrascript/core";
export interface ParameterArgs extends core.SchemaArgs {
    name: string | core.StringOut;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class Parameter extends core.Schema<ParameterArgs> {
    name: string | core.StringOut;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface AutomationParametersArgs extends core.SchemaArgs {
    documentVersion?: string | core.StringOut;
    parameter?: core.Array<Parameter> | core.ArrayOut<Parameter>;
}
export declare class AutomationParameters extends core.Schema<AutomationParametersArgs> {
    documentVersion?: string | core.StringOut;
    parameter?: core.Array<Parameter> | core.ArrayOut<Parameter>;
}
export interface LambdaParametersArgs extends core.SchemaArgs {
    clientContext?: string | core.StringOut;
    payload?: string | core.StringOut;
    qualifier?: string | core.StringOut;
}
export declare class LambdaParameters extends core.Schema<LambdaParametersArgs> {
    clientContext?: string | core.StringOut;
    payload?: string | core.StringOut;
    qualifier?: string | core.StringOut;
}
export interface CloudwatchConfigArgs extends core.SchemaArgs {
    cloudwatchLogGroupName?: string | core.StringOut;
    cloudwatchOutputEnabled?: boolean | core.BooleanOut;
}
export declare class CloudwatchConfig extends core.Schema<CloudwatchConfigArgs> {
    cloudwatchLogGroupName?: string | core.StringOut;
    cloudwatchOutputEnabled?: boolean | core.BooleanOut;
}
export interface NotificationConfigArgs extends core.SchemaArgs {
    notificationArn?: string | core.StringOut;
    notificationEvents?: core.Array<string> | core.ArrayOut<core.StringOut>;
    notificationType?: string | core.StringOut;
}
export declare class NotificationConfig extends core.Schema<NotificationConfigArgs> {
    notificationArn?: string | core.StringOut;
    notificationEvents?: core.Array<string> | core.ArrayOut<core.StringOut>;
    notificationType?: string | core.StringOut;
}
export interface RunCommandParametersArgs extends core.SchemaArgs {
    cloudwatchConfig?: CloudwatchConfig;
    comment?: string | core.StringOut;
    documentHash?: string | core.StringOut;
    documentHashType?: string | core.StringOut;
    documentVersion?: string | core.StringOut;
    notificationConfig?: NotificationConfig;
    outputS3Bucket?: string | core.StringOut;
    outputS3KeyPrefix?: string | core.StringOut;
    parameter?: core.Array<Parameter> | core.ArrayOut<Parameter>;
    serviceRoleArn?: string | core.StringOut;
    timeoutSeconds?: number | core.NumberOut;
}
export declare class RunCommandParameters extends core.Schema<RunCommandParametersArgs> {
    cloudwatchConfig?: CloudwatchConfig;
    comment?: string | core.StringOut;
    documentHash?: string | core.StringOut;
    documentHashType?: string | core.StringOut;
    documentVersion?: string | core.StringOut;
    notificationConfig?: NotificationConfig;
    outputS3Bucket?: string | core.StringOut;
    outputS3KeyPrefix?: string | core.StringOut;
    parameter?: core.Array<Parameter> | core.ArrayOut<Parameter>;
    serviceRoleArn?: string | core.StringOut;
    timeoutSeconds?: number | core.NumberOut;
}
export interface StepFunctionsParametersArgs extends core.SchemaArgs {
    input?: string | core.StringOut;
    name?: string | core.StringOut;
}
export declare class StepFunctionsParameters extends core.Schema<StepFunctionsParametersArgs> {
    input?: string | core.StringOut;
    name?: string | core.StringOut;
}
export interface TaskInvocationParametersArgs extends core.SchemaArgs {
    automationParameters?: AutomationParameters;
    lambdaParameters?: LambdaParameters;
    runCommandParameters?: RunCommandParameters;
    stepFunctionsParameters?: StepFunctionsParameters;
}
export declare class TaskInvocationParameters extends core.Schema<TaskInvocationParametersArgs> {
    automationParameters?: AutomationParameters;
    lambdaParameters?: LambdaParameters;
    runCommandParameters?: RunCommandParameters;
    stepFunctionsParameters?: StepFunctionsParameters;
}
export interface TargetsArgs extends core.SchemaArgs {
    key: string | core.StringOut;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export declare class Targets extends core.Schema<TargetsArgs> {
    key: string | core.StringOut;
    values: core.Array<string> | core.ArrayOut<core.StringOut>;
}
export interface MaintenanceWindowTaskArgs extends core.ResourceArgs {
    cutoffBehavior?: string | core.StringOut;
    description?: string | core.StringOut;
    maxConcurrency?: string | core.StringOut;
    maxErrors?: string | core.StringOut;
    name?: string | core.StringOut;
    priority?: number | core.NumberOut;
    serviceRoleArn?: string | core.StringOut;
    targets?: core.Array<Targets> | core.ArrayOut<Targets>;
    taskArn: string | core.StringOut;
    taskInvocationParameters?: TaskInvocationParameters;
    taskType: string | core.StringOut;
    windowId: string | core.StringOut;
}
export declare class MaintenanceWindowTask extends core.Resource<MaintenanceWindowTaskArgs> {
    arn: string | core.StringOut;
    cutoffBehavior?: string | core.StringOut;
    description?: string | core.StringOut;
    id: string | core.StringOut;
    maxConcurrency?: string | core.StringOut;
    maxErrors?: string | core.StringOut;
    name?: string | core.StringOut;
    priority?: number | core.NumberOut;
    serviceRoleArn?: string | core.StringOut;
    targets?: core.Array<Targets> | core.ArrayOut<Targets>;
    taskArn: string | core.StringOut;
    taskInvocationParameters?: TaskInvocationParameters;
    taskType: string | core.StringOut;
    windowId: string | core.StringOut;
    windowTaskId: string | core.StringOut;
    constructor(name: string, args?: MaintenanceWindowTaskArgs);
    getNamespace(): string;
}
//# sourceMappingURL=maintenance_window_task.d.ts.map