import { IBasicExecutableAction, IStatefulExecutableAction, IPushToShepherdUI, TActionExecutionOptions, THerdDeclaration, TImageInformation } from "../deployment-types"; import { IReleaseStateStore } from "@shepherdorg/state-store"; import { ICreateRolloutWaitAction } from "../deployment-actions/kubectl-action/rollout-wait-action-factory"; import { TFileSystemPath } from "../helpers/basic-types"; import { ICreateDeploymentTestAction } from "../deployment-actions/deployment-test-action/deployment-test-action"; import { ICreateDockerDeploymentActions } from "../deployment-actions/docker-action/create-docker-deployment-action"; import { ICreateDockerImageKubectlDeploymentActions } from "../deployment-actions/kubectl-action/create-docker-kubectl-deployment-actions"; import { ILog } from "@shepherdorg/logger"; import { IProvideLogContextColors } from "@shepherdorg/logger"; import { ICreateDeploymentTimeAnnotationActions } from "../deployment-actions/kubectl-action/k8s-branch-deployment/create-deployment-time-annotation-action"; import { FExec } from "@shepherdorg/ts-exec"; export interface IDeploymentPlanExecutionResult { actionResults: IStatefulExecutableAction[]; actionExecutionError?: Error; herdDeclaration: THerdDeclaration; } export declare function renderPlanFailureSummary(logger: ILog, failedPlans: IDeploymentPlanExecutionResult[]): void; export interface IDeploymentPlan { herdKey: string; herdDeclaration: THerdDeclaration; deploymentActions: Array; addAction(action: IBasicExecutableAction): Promise; execute(deploymentOptions: TActionExecutionOptions): Promise; hasModifiedAction(): boolean; hasStatefulAction(): boolean; printPlan(logger: ILog): boolean; exportActions(_exportDirectory: TFileSystemPath): Promise; } export declare type TK8sDeploymentPlansByKey = { [herdKey: string]: string; }; export declare const NO_ROLLBACK_RESULT: { code: number; }; export interface TDeploymentPlanDependencies { deploymentEnvironment: string; ttlAnnotationActionFactory: ICreateDeploymentTimeAnnotationActions; logContextColors: IProvideLogContextColors; stateStore: IReleaseStateStore; exec: FExec; logger: ILog; uiDataPusher: IPushToShepherdUI; rolloutWaitActionFactory: ICreateRolloutWaitAction; dockerImageKubectlDeploymentActionFactory: ICreateDockerImageKubectlDeploymentActions; deployerActionFactory: ICreateDockerDeploymentActions; deploymentTestActionFactory: ICreateDeploymentTestAction; } export interface IDeploymentPlanFactory { createDeploymentPlan: (herdSpec: THerdDeclaration) => IDeploymentPlan; createDockerImageDeploymentActions(imageInformation: TImageInformation, envFilter: string): Promise>; createDockerImageDeploymentPlan(imageInformation: TImageInformation): Promise; } export declare function createDeploymentPlanFactory(injected: TDeploymentPlanDependencies): IDeploymentPlanFactory;