import React from 'react'; import type { Application, DeckRuntimeServices, IModalComponentProps, IServerGroupJob } from '@spinnaker/core'; import { DeckRuntimeContext, TaskMonitor } from '@spinnaker/core'; import type { IAmazonServerGroup } from '../../../domain'; export type AmazonRollbackType = 'EXPLICIT' | 'PREVIOUS_IMAGE'; export interface IAmazonPreviousImageServerGroup { buildNumber?: number | string; imageId?: string; imageName: string; name: string; } export interface IAmazonRollbackValues { delayBeforeDisableSeconds: number; interestingHealthProviderNames?: string[]; reason?: string; restoreServerGroupName?: string; targetHealthyRollbackPercentage: number; } export interface IAmazonRollbackJob extends IServerGroupJob { interestingHealthProviderNames?: string[]; platformHealthOnlyShowOverride?: boolean; reason?: string; rollbackContext: { delayBeforeDisableSeconds: number; restoreServerGroupName?: string; rollbackServerGroupName: string; targetHealthyRollbackPercentage: number; }; rollbackType: AmazonRollbackType; } export interface IAmazonRollbackErrors { delayBeforeDisableSeconds?: string; restoreServerGroupName?: string; targetHealthyRollbackPercentage?: string; } export interface IAmazonRollbackServerGroupModalProps extends IModalComponentProps { allServerGroups: IAmazonServerGroup[]; application: Application; previousServerGroup?: IAmazonServerGroup; serverGroup: IAmazonServerGroup; } interface IAmazonRollbackServerGroupModalState { initialValues: IAmazonRollbackValues; taskMonitor: TaskMonitor; verified: boolean; } export declare function getDefaultAmazonHealthyRollbackPercentage(desired: number): number; export declare function getAmazonPreviousImageServerGroup(serverGroup: IAmazonServerGroup): IAmazonPreviousImageServerGroup | undefined; export declare function getAmazonRollbackType(serverGroup: IAmazonServerGroup, allServerGroups: IAmazonServerGroup[]): AmazonRollbackType; export declare function validateAmazonRollbackValues(values: IAmazonRollbackValues, rollbackType: AmazonRollbackType, eligibleTargetNames?: string[]): IAmazonRollbackErrors; export declare function buildAmazonRollbackJob(application: Application, serverGroup: IAmazonServerGroup, rollbackType: AmazonRollbackType, values: IAmazonRollbackValues): IAmazonRollbackJob; export declare class AmazonRollbackServerGroupModal extends React.Component { static contextType: React.Context; context: React.ContextType; static defaultProps: Partial; static show(props: IAmazonRollbackServerGroupModalProps, runtimeServices: DeckRuntimeServices): Promise; constructor(props: IAmazonRollbackServerGroupModalProps); private get rollbackType(); private close; private label; private minHealthy; private submit; private renderRestoreTarget; private renderOperations; render(): JSX.Element; } export {};