export interface PlatformScriptKey {
    /** The script location for Linux. */
    linux?: string;
    /** The script location for Windows. */
    windows?: string;
}
export interface PlatformCommand {
    /** Command for Linux. */
    linux?: string;
    /** Command for Windows. */
    windows?: string;
}
export interface WorkflowStepAutomationConfiguration {
    /** The Amazon S3 bucket where the script is located. */
    scriptLocationS3Bucket?: string;
    /** The Amazon S3 key for the script location. */
    scriptLocationS3Key?: PlatformScriptKey;
    /** The command required to run the script. */
    command?: PlatformCommand;
    /** The source or target environment. */
    runEnvironment?: 'AWS' | 'ONPREMISE';
    /** The servers on which to run the script. */
    targetType?: 'SINGLE' | 'ALL' | 'NONE';
}
export interface WorkflowStepOutput {
    /** The name of the step. */
    name?: string;
    /** The data type of the output. */
    dataType?: 'STRING' | 'INTEGER' | 'STRINGLIST' | 'STRINGMAP';
    /** Determine if an output is required from a step. */
    required?: boolean;
    /** The value of the output. */
    value?: any;
}
export interface CreateTemplateInput {
    /** The name of the migration workflow template. */
    templateName: string;
    /** The source of the migration workflow template. */
    templateSource: {
        workflowId?: string;
    };
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. For more information, see Idempotency in the Smithy documentation. */
    clientToken?: string;
    /** The tags to add to the migration workflow template. */
    tags?: Record<string, string>;
    /** A description of the migration workflow template. */
    templateDescription?: string;
}
export interface CreateWorkflowInput {
    /** The input parameters required to create a migration workflow. */
    inputParameters: Record<string, {
        integerValue?: number;
    } | {
        stringValue?: string;
    } | {
        listOfStringsValue?: any[];
    } | {
        mapOfStringValue?: Record<string, any>;
    }>;
    /** The name of the migration workflow. */
    name: string;
    /** The ID of the template. */
    templateId: string;
    /** The configuration ID of the application configured in Application Discovery Service. */
    applicationConfigurationId?: string;
    /** The description of the migration workflow. */
    description?: string;
    /** The servers on which a step will be run. */
    stepTargets?: string[];
    /** The tags to add on a migration workflow. */
    tags?: Record<string, string>;
}
export interface CreateWorkflowStepInput {
    /** The name of the step. */
    name: string;
    /** The action type of the step. You must run and update the status of a manual step for the workflow to continue after the completion of the step. */
    stepActionType: 'MANUAL' | 'AUTOMATED';
    /** The ID of the step group. */
    stepGroupId: string;
    /** The ID of the migration workflow. */
    workflowId: string;
    /** The description of the step. */
    description?: string;
    /** The next step. */
    next?: string[];
    /** The key value pairs added for the expected output. */
    outputs?: WorkflowStepOutput[];
    /** The previous step. */
    previous?: string[];
    /** The servers on which a step will be run. */
    stepTarget?: string[];
    /** The custom script to run tests on source or target environments. */
    workflowStepAutomationConfiguration?: WorkflowStepAutomationConfiguration;
}
export interface CreateWorkflowStepGroupInput {
    /** The name of the step group. */
    name: string;
    /** The ID of the migration workflow that will contain the step group. */
    workflowId: string;
    /** The description of the step group. */
    description?: string;
    /** The next step group. */
    next?: string[];
    /** The previous step group. */
    previous?: string[];
}
export interface DeleteTemplateInput {
    /** The ID of the request to delete a migration workflow template. */
    id: string;
}
export interface DeleteWorkflowInput {
    /** The ID of the migration workflow you want to delete. */
    id: string;
}
export interface DeleteWorkflowStepInput {
    /** The ID of the step you want to delete. */
    id: string;
    /** The ID of the step group that contains the step you want to delete. */
    stepGroupId: string;
    /** The ID of the migration workflow. */
    workflowId: string;
}
export interface DeleteWorkflowStepGroupInput {
    /** The ID of the step group you want to delete. */
    id: string;
    /** The ID of the migration workflow. */
    workflowId: string;
}
export interface GetTemplateInput {
    /** The ID of the template. */
    id: string;
}
export interface GetTemplateStepInput {
    /** The ID of the step. */
    id: string;
    /** The ID of the step group. */
    stepGroupId: string;
    /** The ID of the template. */
    templateId: string;
}
export interface GetTemplateStepGroupInput {
    /** The ID of the step group. */
    id: string;
    /** The ID of the template. */
    templateId: string;
}
export interface GetWorkflowInput {
    /** The ID of the migration workflow. */
    id: string;
}
export interface GetWorkflowStepInput {
    /** The ID of the step. */
    id: string;
    /** The ID of the step group. */
    stepGroupId: string;
    /** The ID of the migration workflow. */
    workflowId: string;
}
export interface GetWorkflowStepGroupInput {
    /** The ID of the step group. */
    id: string;
    /** The ID of the migration workflow. */
    workflowId: string;
}
export interface ListPluginsInput {
    /** The maximum number of plugins that can be returned. */
    maxResults?: number;
    /** The pagination token. */
    nextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The Amazon Resource Name (ARN) of the resource. */
    resourceArn: string;
}
export interface ListTemplatesInput {
    /** The maximum number of results that can be returned. */
    maxResults?: number;
    /** The name of the template. */
    name?: string;
    /** The pagination token. */
    nextToken?: string;
}
export interface ListTemplateStepGroupsInput {
    /** The ID of the template. */
    templateId: string;
    /** The maximum number of results that can be returned. */
    maxResults?: number;
    /** The pagination token. */
    nextToken?: string;
}
export interface ListTemplateStepsInput {
    /** The ID of the step group. */
    stepGroupId: string;
    /** The ID of the template. */
    templateId: string;
    /** The maximum number of results that can be returned. */
    maxResults?: number;
    /** The pagination token. */
    nextToken?: string;
}
export interface ListWorkflowsInput {
    /** The name of the application configured in Application Discovery Service. */
    adsApplicationConfigurationName?: string;
    /** The maximum number of results that can be returned. */
    maxResults?: number;
    /** The name of the migration workflow. */
    name?: string;
    /** The pagination token. */
    nextToken?: string;
    /** The status of the migration workflow. */
    status?: 'CREATING' | 'NOT_STARTED' | 'CREATION_FAILED' | 'STARTING' | 'IN_PROGRESS' | 'WORKFLOW_FAILED' | 'PAUSED' | 'PAUSING' | 'PAUSING_FAILED' | 'USER_ATTENTION_REQUIRED' | 'DELETING' | 'DELETION_FAILED' | 'DELETED' | 'COMPLETED';
    /** The ID of the template. */
    templateId?: string;
}
export interface ListWorkflowStepGroupsInput {
    /** The ID of the migration workflow. */
    workflowId: string;
    /** The maximum number of results that can be returned. */
    maxResults?: number;
    /** The pagination token. */
    nextToken?: string;
}
export interface ListWorkflowStepsInput {
    /** The ID of the step group. */
    stepGroupId: string;
    /** The ID of the migration workflow. */
    workflowId: string;
    /** The maximum number of results that can be returned. */
    maxResults?: number;
    /** The pagination token. */
    nextToken?: string;
}
export interface RetryWorkflowStepInput {
    /** The ID of the step. */
    id: string;
    /** The ID of the step group. */
    stepGroupId: string;
    /** The ID of the migration workflow. */
    workflowId: string;
}
export interface StartWorkflowInput {
    /** The ID of the migration workflow. */
    id: string;
}
export interface StopWorkflowInput {
    /** The ID of the migration workflow. */
    id: string;
}
export interface TagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource to which you want to add tags. */
    resourceArn: string;
    /** A collection of labels, in the form of key:value pairs, that apply to this resource. */
    tags: Record<string, string>;
}
export interface UntagResourceInput {
    /** The Amazon Resource Name (ARN) of the resource from which you want to remove tags. */
    resourceArn: string;
    /** One or more tag keys. Specify only the tag keys, not the tag values. */
    tagKeys: string[];
}
export interface UpdateTemplateInput {
    /** The ID of the request to update a migration workflow template. */
    id: string;
    /** A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. */
    clientToken?: string;
    /** The description of the migration workflow template to update. */
    templateDescription?: string;
    /** The name of the migration workflow template to update. */
    templateName?: string;
}
export interface UpdateWorkflowInput {
    /** The ID of the migration workflow. */
    id: string;
    /** The description of the migration workflow. */
    description?: string;
    /** The input parameters required to update a migration workflow. */
    inputParameters?: Record<string, {
        integerValue?: number;
    } | {
        stringValue?: string;
    } | {
        listOfStringsValue?: any[];
    } | {
        mapOfStringValue?: Record<string, any>;
    }>;
    /** The name of the migration workflow. */
    name?: string;
    /** The servers on which a step will be run. */
    stepTargets?: string[];
}
export interface UpdateWorkflowStepInput {
    /** The ID of the step. */
    id: string;
    /** The ID of the step group. */
    stepGroupId: string;
    /** The ID of the migration workflow. */
    workflowId: string;
    /** The description of the step. */
    description?: string;
    /** The name of the step. */
    name?: string;
    /** The next step. */
    next?: string[];
    /** The outputs of a step. */
    outputs?: WorkflowStepOutput[];
    /** The previous step. */
    previous?: string[];
    /** The status of the step. */
    status?: 'AWAITING_DEPENDENCIES' | 'SKIPPED' | 'READY' | 'IN_PROGRESS' | 'COMPLETED' | 'FAILED' | 'PAUSED' | 'USER_ATTENTION_REQUIRED';
    /** The action type of the step. You must run and update the status of a manual step for the workflow to continue after the completion of the step. */
    stepActionType?: 'MANUAL' | 'AUTOMATED';
    /** The servers on which a step will be run. */
    stepTarget?: string[];
    /** The custom script to run tests on the source and target environments. */
    workflowStepAutomationConfiguration?: WorkflowStepAutomationConfiguration;
}
export interface UpdateWorkflowStepGroupInput {
    /** The ID of the step group. */
    id: string;
    /** The ID of the migration workflow. */
    workflowId: string;
    /** The description of the step group. */
    description?: string;
    /** The name of the step group. */
    name?: string;
    /** The next step group. */
    next?: string[];
    /** The previous step group. */
    previous?: string[];
}
/** MigrationHubOrchestrator service binding for Step Functions SDK integrations. */
export declare class MigrationHubOrchestrator {
    constructor();
    createTemplate<T>(params: CreateTemplateInput): Promise<T>;
    createWorkflow<T>(params: CreateWorkflowInput): Promise<T>;
    createWorkflowStep<T>(params: CreateWorkflowStepInput): Promise<T>;
    createWorkflowStepGroup<T>(params: CreateWorkflowStepGroupInput): Promise<T>;
    deleteTemplate<T>(params: DeleteTemplateInput): Promise<T>;
    deleteWorkflow<T>(params: DeleteWorkflowInput): Promise<T>;
    deleteWorkflowStep<T>(params: DeleteWorkflowStepInput): Promise<T>;
    deleteWorkflowStepGroup<T>(params: DeleteWorkflowStepGroupInput): Promise<T>;
    getTemplate<T>(params: GetTemplateInput): Promise<T>;
    getTemplateStep<T>(params: GetTemplateStepInput): Promise<T>;
    getTemplateStepGroup<T>(params: GetTemplateStepGroupInput): Promise<T>;
    getWorkflow<T>(params: GetWorkflowInput): Promise<T>;
    getWorkflowStep<T>(params: GetWorkflowStepInput): Promise<T>;
    getWorkflowStepGroup<T>(params: GetWorkflowStepGroupInput): Promise<T>;
    listPlugins<T>(params: ListPluginsInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listTemplates<T>(params: ListTemplatesInput): Promise<T>;
    listTemplateStepGroups<T>(params: ListTemplateStepGroupsInput): Promise<T>;
    listTemplateSteps<T>(params: ListTemplateStepsInput): Promise<T>;
    listWorkflows<T>(params: ListWorkflowsInput): Promise<T>;
    listWorkflowStepGroups<T>(params: ListWorkflowStepGroupsInput): Promise<T>;
    listWorkflowSteps<T>(params: ListWorkflowStepsInput): Promise<T>;
    retryWorkflowStep<T>(params: RetryWorkflowStepInput): Promise<T>;
    startWorkflow<T>(params: StartWorkflowInput): Promise<T>;
    stopWorkflow<T>(params: StopWorkflowInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateTemplate<T>(params: UpdateTemplateInput): Promise<T>;
    updateWorkflow<T>(params: UpdateWorkflowInput): Promise<T>;
    updateWorkflowStep<T>(params: UpdateWorkflowStepInput): Promise<T>;
    updateWorkflowStepGroup<T>(params: UpdateWorkflowStepGroupInput): Promise<T>;
}
//# sourceMappingURL=MigrationHubOrchestrator.d.ts.map