export interface Group {
    /** The key of the specific import group. */
    name?: 'ExternalId' | 'ExternalSourceType';
    /** The value of the specific import group. */
    value?: string;
}
export interface BusinessGoals {
    /** Business goal to achieve migration at a fast pace. */
    speedOfMigration?: number;
    /** Business goal to reduce the operational overhead on the team by moving into managed services. */
    reduceOperationalOverheadWithManagedServices?: number;
    /** Business goal to modernize infrastructure by moving to cloud native technologies. */
    modernizeInfrastructureWithCloudNativeTechnologies?: number;
    /** Business goal to reduce license costs. */
    licenseCostReduction?: number;
}
export interface PrioritizeBusinessGoals {
    /** Rank of business goals based on priority. */
    businessGoals?: BusinessGoals;
}
export interface ApplicationPreferences {
    /** Application preferences that you specify to prefer managed environment. */
    managementPreference?: {
        awsManagedResources?: any;
    } | {
        selfManageResources?: any;
    } | {
        noPreference?: any;
    };
}
export interface DatabasePreferences {
    /** Specifies whether you're interested in self-managed databases or databases managed by AWS. */
    databaseManagementPreference?: 'AWS-managed' | 'Self-manage' | 'No preference';
    /** Specifies your preferred migration path. */
    databaseMigrationPreference?: {
        heterogeneous?: any;
    } | {
        homogeneous?: any;
    } | {
        noPreference?: any;
    };
}
export interface AssessmentTarget {
    /** Condition of an assessment. */
    condition: 'EQUALS' | 'NOT_EQUALS' | 'CONTAINS' | 'NOT_CONTAINS';
    /** Name of an assessment. */
    name: string;
    /** Values of an assessment. */
    values: any[];
}
export interface StrategyOption {
    /** Type of transformation. For example, Rehost, Replatform, and so on. */
    strategy?: 'Rehost' | 'Retirement' | 'Refactor' | 'Replatform' | 'Retain' | 'Relocate' | 'Repurchase';
    /** The name of the tool that can be used to transform an application component using this strategy. */
    toolName?: 'App2Container' | 'Porting Assistant For .NET' | 'End of Support Migration' | 'Windows Web Application Migration Assistant' | 'Application Migration Service' | 'Strategy Recommendation Support' | 'In Place Operating System Upgrade' | 'Schema Conversion Tool' | 'Database Migration Service' | 'Native SQL Server Backup/Restore';
    /** Destination information about where the application component can migrate to. For example, EC2, ECS, and so on. */
    targetDestination?: 'None specified' | 'AWS Elastic BeanStalk' | 'AWS Fargate' | 'Amazon Elastic Cloud Compute (EC2)' | 'Amazon Elastic Container Service (ECS)' | 'Amazon Elastic Kubernetes Service (EKS)' | 'Aurora MySQL' | 'Aurora PostgreSQL' | 'Amazon Relational Database Service on MySQL' | 'Amazon Relational Database Service on PostgreSQL' | 'Amazon DocumentDB' | 'Amazon DynamoDB' | 'Amazon Relational Database Service' | 'Babelfish for Aurora PostgreSQL';
    /** Indicates if a specific strategy is preferred for the application component. */
    isPreferred?: boolean;
}
export interface SourceCode {
    /** The type of repository to use for the source code. */
    versionControl?: 'GITHUB' | 'GITHUB_ENTERPRISE' | 'AZURE_DEVOPS_GIT';
    /** The branch of the source code. */
    sourceVersion?: string;
    /** The repository name for the source code. */
    location?: string;
    /** The name of the project. */
    projectName?: string;
}
export interface GetApplicationComponentDetailsInput {
    /** The ID of the application component. The ID is unique within an AWS account. */
    applicationComponentId: string;
}
export interface GetApplicationComponentStrategiesInput {
    /** The ID of the application component. The ID is unique within an AWS account. */
    applicationComponentId: string;
}
export interface GetAssessmentInput {
    /** The assessmentid returned by StartAssessment. */
    id: string;
}
export interface GetImportFileTaskInput {
    /** The ID of the import file task. This ID is returned in the response of StartImportFileTask. */
    id: string;
}
export interface GetRecommendationReportDetailsInput {
    /** The recommendation report generation task id returned by StartRecommendationReportGeneration. */
    id: string;
}
export interface GetServerDetailsInput {
    /** The ID of the server. */
    serverId: string;
    /** The maximum number of items to include in the response. The maximum value is 100. */
    maxResults?: number;
    /** The token from a previous call that you use to retrieve the next set of results. For example, if a previous call to this action returned 100 items, but you set maxResults to 10. You'll receive a set o */
    nextToken?: string;
}
export interface GetServerStrategiesInput {
    /** The ID of the server. */
    serverId: string;
}
/** Represents input for ListAnalyzableServers operation. */
export interface ListAnalyzableServersInput {
    /** The maximum number of items to include in the response. The maximum value is 100. */
    maxResults?: number;
    /** The token from a previous call that you use to retrieve the next set of results. For example, if a previous call to this action returned 100 items, but you set maxResults to 10. You'll receive a set o */
    nextToken?: string;
    /** Specifies whether to sort by ascending (ASC) or descending (DESC) order. */
    sort?: 'ASC' | 'DESC';
}
export interface ListApplicationComponentsInput {
    /** Criteria for filtering the list of application components. */
    applicationComponentCriteria?: 'NOT_DEFINED' | 'APP_NAME' | 'SERVER_ID' | 'APP_TYPE' | 'STRATEGY' | 'DESTINATION' | 'ANALYSIS_STATUS' | 'ERROR_CATEGORY';
    /** Specify the value based on the application component criteria type. For example, if applicationComponentCriteria is set to SERVER_ID and filterValue is set to server1, then ListApplicationComponents r */
    filterValue?: string;
    /** The group ID specified in to filter on. */
    groupIdFilter?: Group[];
    /** The maximum number of items to include in the response. The maximum value is 100. */
    maxResults?: number;
    /** The token from a previous call that you use to retrieve the next set of results. For example, if a previous call to this action returned 100 items, but you set maxResults to 10. You'll receive a set o */
    nextToken?: string;
    /** Specifies whether to sort by ascending (ASC) or descending (DESC) order. */
    sort?: 'ASC' | 'DESC';
}
export interface ListCollectorsInput {
    /** The maximum number of items to include in the response. The maximum value is 100. */
    maxResults?: number;
    /** The token from a previous call that you use to retrieve the next set of results. For example, if a previous call to this action returned 100 items, but you set maxResults to 10. You'll receive a set o */
    nextToken?: string;
}
export interface ListImportFileTaskInput {
    /** The total number of items to return. The maximum value is 100. */
    maxResults?: number;
    /** The token from a previous call that you use to retrieve the next set of results. For example, if a previous call to this action returned 100 items, but you set maxResults to 10. You'll receive a set o */
    nextToken?: string;
}
export interface ListServersInput {
    /** Specifies the filter value, which is based on the type of server criteria. For example, if serverCriteria is OS_NAME, and the filterValue is equal to WindowsServer, then ListServers returns all of the */
    filterValue?: string;
    /** Specifies the group ID to filter on. */
    groupIdFilter?: Group[];
    /** The maximum number of items to include in the response. The maximum value is 100. */
    maxResults?: number;
    /** The token from a previous call that you use to retrieve the next set of results. For example, if a previous call to this action returned 100 items, but you set maxResults to 10. You'll receive a set o */
    nextToken?: string;
    /** Criteria for filtering servers. */
    serverCriteria?: 'NOT_DEFINED' | 'OS_NAME' | 'STRATEGY' | 'DESTINATION' | 'SERVER_ID' | 'ANALYSIS_STATUS' | 'ERROR_CATEGORY';
    /** Specifies whether to sort by ascending (ASC) or descending (DESC) order. */
    sort?: 'ASC' | 'DESC';
}
export interface PutPortfolioPreferencesInput {
    /** The classification for application component types. */
    applicationMode?: 'ALL' | 'KNOWN' | 'UNKNOWN';
    /** The transformation preferences for non-database applications. */
    applicationPreferences?: ApplicationPreferences;
    /** The transformation preferences for database applications. */
    databasePreferences?: DatabasePreferences;
    /** The rank of the business goals based on priority. */
    prioritizeBusinessGoals?: PrioritizeBusinessGoals;
}
export interface StartAssessmentInput {
    /** The data source type of an assessment to be started. */
    assessmentDataSourceType?: 'StrategyRecommendationsApplicationDataCollector' | 'ManualImport' | 'ApplicationDiscoveryService';
    /** List of criteria for assessment. */
    assessmentTargets?: AssessmentTarget[];
    /** The S3 bucket used by the collectors to send analysis data to the service. The bucket name must begin with migrationhub-strategy-. */
    s3bucketForAnalysisData?: string;
    /** The S3 bucket where all the reports generated by the service are stored. The bucket name must begin with migrationhub-strategy-. */
    s3bucketForReportData?: string;
}
export interface StartImportFileTaskInput {
    /** A descriptive name for the request. */
    name: string;
    /** The S3 bucket where the import file is located. The bucket name is required to begin with migrationhub-strategy-. */
    S3Bucket: string;
    /** The Amazon S3 key name of the import file. */
    s3key: string;
    /** Specifies the source that the servers are coming from. By default, Strategy Recommendations assumes that the servers specified in the import file are available in AWS Application Discovery Service. */
    dataSourceType?: 'ApplicationDiscoveryService' | 'MPA' | 'Import' | 'StrategyRecommendationsApplicationDataCollector';
    /** Groups the resources in the import file together with a unique name. This ID can be as filter in ListApplicationComponents and ListServers. */
    groupId?: Group[];
    /** The S3 bucket where Strategy Recommendations uploads import results. The bucket name is required to begin with migrationhub-strategy-. */
    s3bucketForReportData?: string;
}
export interface StartRecommendationReportGenerationInput {
    /** Groups the resources in the recommendation report with a unique name. */
    groupIdFilter?: Group[];
    /** The output format for the recommendation report file. The default format is Microsoft Excel. */
    outputFormat?: 'Excel' | 'Json';
}
export interface StopAssessmentInput {
    /** The assessmentId returned by StartAssessment. */
    assessmentId: string;
}
export interface UpdateApplicationComponentConfigInput {
    /** The ID of the application component. The ID is unique within an AWS account. */
    applicationComponentId: string;
    /** The type of known component. */
    appType?: 'DotNetFramework' | 'Java' | 'SQLServer' | 'IIS' | 'Oracle' | 'Other' | 'Tomcat' | 'JBoss' | 'Spring' | 'Mongo DB' | 'DB2' | 'Maria DB' | 'MySQL' | 'Sybase' | 'PostgreSQLServer' | 'Cassandra' | 'IBM WebSphere' | 'Oracle WebLogic' | 'Visual Basic' | 'Unknown' | 'DotnetCore' | 'Dotnet';
    /** Update the configuration request of an application component. If it is set to true, the source code and/or database credentials are updated. If it is set to false, the source code and/or database cred */
    configureOnly?: boolean;
    /** Indicates whether the application component has been included for server recommendation or not. */
    inclusionStatus?: 'excludeFromAssessment' | 'includeInAssessment';
    /** Database credentials. */
    secretsManagerKey?: string;
    /** The list of source code configurations to update for the application component. */
    sourceCodeList?: SourceCode[];
    /** The preferred strategy options for the application component. Use values from the GetApplicationComponentStrategies response. */
    strategyOption?: StrategyOption;
}
export interface UpdateServerConfigInput {
    /** The ID of the server. */
    serverId: string;
    /** The preferred strategy options for the application component. See the response from GetServerStrategies. */
    strategyOption?: StrategyOption;
}
/** MigrationHubStrategy service binding for Step Functions SDK integrations. */
export declare class MigrationHubStrategy {
    constructor();
    getApplicationComponentDetails<T>(params: GetApplicationComponentDetailsInput): Promise<T>;
    getApplicationComponentStrategies<T>(params: GetApplicationComponentStrategiesInput): Promise<T>;
    getAssessment<T>(params: GetAssessmentInput): Promise<T>;
    getImportFileTask<T>(params: GetImportFileTaskInput): Promise<T>;
    getLatestAssessmentId<T>(params: Record<string, any>): Promise<T>;
    getPortfolioPreferences<T>(params: Record<string, any>): Promise<T>;
    getPortfolioSummary<T>(params: Record<string, any>): Promise<T>;
    getRecommendationReportDetails<T>(params: GetRecommendationReportDetailsInput): Promise<T>;
    getServerDetails<T>(params: GetServerDetailsInput): Promise<T>;
    getServerStrategies<T>(params: GetServerStrategiesInput): Promise<T>;
    listAnalyzableServers<T>(params: ListAnalyzableServersInput): Promise<T>;
    listApplicationComponents<T>(params: ListApplicationComponentsInput): Promise<T>;
    listCollectors<T>(params: ListCollectorsInput): Promise<T>;
    listImportFileTask<T>(params: ListImportFileTaskInput): Promise<T>;
    listServers<T>(params: ListServersInput): Promise<T>;
    putPortfolioPreferences<T>(params: PutPortfolioPreferencesInput): Promise<T>;
    startAssessment<T>(params: StartAssessmentInput): Promise<T>;
    startImportFileTask<T>(params: StartImportFileTaskInput): Promise<T>;
    startRecommendationReportGeneration<T>(params: StartRecommendationReportGenerationInput): Promise<T>;
    stopAssessment<T>(params: StopAssessmentInput): Promise<T>;
    updateApplicationComponentConfig<T>(params: UpdateApplicationComponentConfigInput): Promise<T>;
    updateServerConfig<T>(params: UpdateServerConfigInput): Promise<T>;
}
//# sourceMappingURL=MigrationHubStrategy.d.ts.map