export interface Workflow {
    /** The steps that make up the workflow. */
    steps?: any[];
    /** The action that the workflow performs. Valid values include activate and deactivate. */
    workflowTargetAction: 'activate' | 'deactivate';
    /** The Amazon Web Services Region that the workflow targets. */
    workflowTargetRegion?: string;
    /** The description of the workflow. */
    workflowDescription?: string;
}
export interface AssociatedAlarm {
    /** The cross account role for the configuration. */
    crossAccountRole?: string;
    /** The external ID (secret key) for the configuration. */
    externalId?: string;
    /** The resource identifier for alarms that you associate with a plan. */
    resourceIdentifier: string;
    /** The alarm type for an associated alarm. An associated CloudWatch alarm can be an application health alarm or a trigger alarm. */
    alarmType: 'applicationHealth' | 'trigger';
}
export interface Trigger {
    /** The description for a trigger. */
    description?: string;
    /** The Amazon Web Services Region for a trigger. */
    targetRegion: string;
    /** The action to perform when the trigger fires. Valid values include activate and deactivate. */
    action: 'activate' | 'deactivate';
    /** The conditions that must be met for the trigger to fire. */
    conditions: any[];
    /** The minimum time, in minutes, that must elapse between automatic executions of the plan. */
    minDelayMinutesBetweenExecutions: number;
}
export interface ReportConfiguration {
    /** The output configuration for the report. */
    reportOutput?: any[];
}
export interface ApprovePlanExecutionStepInput {
    /** The status of approval for a plan execution step. */
    approval: 'approve' | 'decline';
    /** The execution identifier of a plan execution. */
    executionId: string;
    /** The Amazon Resource Name (ARN) of the plan. */
    planArn: string;
    /** The name of a step in a plan execution. */
    stepName: string;
    /** A comment that you can enter about a plan execution. */
    comment?: string;
}
export interface CancelPlanExecutionInput {
    /** The execution identifier of a plan execution. */
    executionId: string;
    /** The Amazon Resource Name (ARN) of the plan. */
    planArn: string;
    /** A comment that you can enter about canceling a plan execution step. */
    comment?: string;
}
export interface CreatePlanInput {
    /** An execution role is a way to categorize a Region switch plan. */
    executionRole: string;
    /** The name of a Region switch plan. */
    name: string;
    /** The recovery approach for a Region switch plan, which can be active/active (activeActive) or active/passive (activePassive). */
    recoveryApproach: 'activeActive' | 'activePassive';
    /** An array that specifies the Amazon Web Services Regions for a Region switch plan. Specify two Regions. */
    regions: string[];
    /** An array of workflows included in a Region switch plan. */
    workflows: Workflow[];
    /** The alarms associated with a Region switch plan. */
    associatedAlarms?: Record<string, AssociatedAlarm>;
    /** The description of a Region switch plan. */
    description?: string;
    /** The primary Amazon Web Services Region for the application. This is the Region where the application normally runs before any Region switch occurs. */
    primaryRegion?: string;
    /** Optionally, you can specify an recovery time objective for a Region switch plan, in minutes. */
    recoveryTimeObjectiveMinutes?: number;
    reportConfiguration?: ReportConfiguration;
    /** The tags to apply to the Region switch plan. */
    tags?: Record<string, string>;
    /** The triggers associated with a Region switch plan. */
    triggers?: Trigger[];
}
export interface DeletePlanInput {
    /** The Amazon Resource Name (ARN) of the plan. */
    arn: string;
}
export interface GetPlanInput {
    /** The Amazon Resource Name (ARN) of the plan. */
    arn: string;
}
export interface GetPlanEvaluationStatusInput {
    /** The Amazon Resource Name (ARN) of the Region switch plan to retrieve evaluation status for. */
    planArn: string;
    /** The number of objects that you want to return with this call. */
    maxResults?: number;
    /** Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this p */
    nextToken?: string;
}
export interface GetPlanExecutionInput {
    /** The execution identifier of a plan execution. */
    executionId: string;
    /** The Amazon Resource Name (ARN) of the plan with the execution to retrieve. */
    planArn: string;
    /** The number of objects that you want to return with this call. */
    maxResults?: number;
    /** Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this p */
    nextToken?: string;
}
export interface GetPlanInRegionInput {
    /** The Amazon Resource Name (ARN) of the plan in Region. */
    arn: string;
}
export interface ListPlanExecutionEventsInput {
    /** The execution identifier of a plan execution. */
    executionId: string;
    /** The Amazon Resource Name (ARN) of the plan. */
    planArn: string;
    /** The number of objects that you want to return with this call. */
    maxResults?: number;
    /** The name of the plan execution event. */
    name?: string;
    /** Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this p */
    nextToken?: string;
}
export interface ListPlanExecutionsInput {
    /** The ARN for the plan. */
    planArn: string;
    /** The number of objects that you want to return with this call. */
    maxResults?: number;
    /** Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this p */
    nextToken?: string;
    /** The state of the plan execution. For example, the plan execution might be In Progress. */
    state?: 'inProgress' | 'pausedByFailedStep' | 'pausedByOperator' | 'completed' | 'completedWithExceptions' | 'canceled' | 'planExecutionTimedOut' | 'pendingManualApproval' | 'failed' | 'pending' | 'completedMonitoringApplicationHealth';
}
export interface ListPlansInput {
    /** The number of objects that you want to return with this call. */
    maxResults?: number;
    /** Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this p */
    nextToken?: string;
}
export interface ListPlansInRegionInput {
    /** The number of objects that you want to return with this call. */
    maxResults?: number;
    /** Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this p */
    nextToken?: string;
}
export interface ListRoute53HealthChecksInput {
    /** The Amazon Resource Name (ARN) of the Amazon Route 53 health check request. */
    arn: string;
    /** The hosted zone ID for the health checks. */
    hostedZoneId?: string;
    /** The number of objects that you want to return with this call. */
    maxResults?: number;
    /** Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this p */
    nextToken?: string;
    /** The record name for the health checks. */
    recordName?: string;
}
export interface ListRoute53HealthChecksInRegionInput {
    /** The Amazon Resource Name (ARN) of the Arc Region Switch Plan. */
    arn: string;
    /** The hosted zone ID for the health checks. */
    hostedZoneId?: string;
    /** The number of objects that you want to return with this call. */
    maxResults?: number;
    /** Specifies that you want to receive the next page of results. Valid only if you received a nextToken response in the previous request. If you did, it indicates that more output is available. Set this p */
    nextToken?: string;
    /** The record name for the health checks. */
    recordName?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. */
    arn: string;
}
export interface StartPlanExecutionInput {
    /** The action to perform. Valid values are activate (to shift traffic to the target Region) or deactivate (to shift traffic away from the target Region). */
    action: 'activate' | 'deactivate';
    /** The Amazon Resource Name (ARN) of the plan to execute. */
    planArn: string;
    /** The Amazon Web Services Region to target with this execution. This is the Region that traffic will be shifted to or from, depending on the action. */
    targetRegion: string;
    /** An optional comment explaining why the plan execution is being started. */
    comment?: string;
    /** A boolean value indicating whether to use the latest version of the plan. If set to false, you must specify a specific version. */
    latestVersion?: string;
    /** The plan execution mode. Valid values are graceful, for starting the execution in graceful mode, or ungraceful, for starting the execution in ungraceful mode. */
    mode?: 'graceful' | 'ungraceful';
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) for a tag that you add to a resource. */
    arn: string;
    /** Tags that you add to a resource. You can add a maximum of 50 tags in Region switch. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) for a tag you remove a resource from. */
    arn: string;
    /** Tag keys that you remove from a resource. */
    resourceTagKeys: string[];
}
export interface UpdatePlanInput {
    /** The Amazon Resource Name (ARN) of the plan. */
    arn: string;
    /** The updated IAM role ARN that grants Region switch the permissions needed to execute the plan steps. */
    executionRole: string;
    /** The updated workflows for the Region switch plan. */
    workflows: Workflow[];
    /** The updated CloudWatch alarms associated with the plan. */
    associatedAlarms?: Record<string, AssociatedAlarm>;
    /** The updated description for the Region switch plan. */
    description?: string;
    /** The updated target recovery time objective (RTO) in minutes for the plan. */
    recoveryTimeObjectiveMinutes?: number;
    /** The updated report configuration for the plan. */
    reportConfiguration?: ReportConfiguration;
    /** The updated conditions that can automatically trigger the execution of the plan. */
    triggers?: Trigger[];
}
export interface UpdatePlanExecutionInput {
    /** The action specified for a plan execution, for example, Switch to Graceful or Pause. */
    action: 'switchToGraceful' | 'switchToUngraceful' | 'pause' | 'resume';
    /** The execution identifier of a plan execution. */
    executionId: string;
    /** The Amazon Resource Name (ARN) of the plan with the execution to update. */
    planArn: string;
    /** An optional comment about the plan execution. */
    comment?: string;
}
export interface UpdatePlanExecutionStepInput {
    /** The updated action to take for the step. This can be used to skip or retry a step. */
    actionToTake: 'switchToUngraceful' | 'skip';
    /** An optional comment about the plan execution. */
    comment: string;
    /** The unique identifier of the plan execution containing the step to update. */
    executionId: string;
    /** The Amazon Resource Name (ARN) of the plan containing the execution step to update. */
    planArn: string;
    /** The name of the execution step to update. */
    stepName: string;
}
/** ARC Region switch service binding for Step Functions SDK integrations. */
export declare class ARCRegionswitch {
    constructor();
    approvePlanExecutionStep<T>(params: ApprovePlanExecutionStepInput): Promise<T>;
    cancelPlanExecution<T>(params: CancelPlanExecutionInput): Promise<T>;
    createPlan<T>(params: CreatePlanInput): Promise<T>;
    deletePlan<T>(params: DeletePlanInput): Promise<T>;
    getPlan<T>(params: GetPlanInput): Promise<T>;
    getPlanEvaluationStatus<T>(params: GetPlanEvaluationStatusInput): Promise<T>;
    getPlanExecution<T>(params: GetPlanExecutionInput): Promise<T>;
    getPlanInRegion<T>(params: GetPlanInRegionInput): Promise<T>;
    listPlanExecutionEvents<T>(params: ListPlanExecutionEventsInput): Promise<T>;
    listPlanExecutions<T>(params: ListPlanExecutionsInput): Promise<T>;
    listPlans<T>(params: ListPlansInput): Promise<T>;
    listPlansInRegion<T>(params: ListPlansInRegionInput): Promise<T>;
    listRoute53HealthChecks<T>(params: ListRoute53HealthChecksInput): Promise<T>;
    listRoute53HealthChecksInRegion<T>(params: ListRoute53HealthChecksInRegionInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    startPlanExecution<T>(params: StartPlanExecutionInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updatePlan<T>(params: UpdatePlanInput): Promise<T>;
    updatePlanExecution<T>(params: UpdatePlanExecutionInput): Promise<T>;
    updatePlanExecutionStep<T>(params: UpdatePlanExecutionStepInput): Promise<T>;
}
//# sourceMappingURL=ARCRegionswitch.d.ts.map