import type { ComponentType, SFC } from 'react'; import type { IAccountDetails } from '../../account/AccountService'; import type { Application } from '../../application/application.model'; import type { IArtifactEditorProps, IArtifactKindConfig, IExecution, INotificationTypeConfig, IStage, IStageTypeConfig, ITriggerTypeConfig } from '../../domain'; import type { ITriggerTemplateComponentProps } from '../manualExecution/TriggerTemplate'; export interface ITransformer { transform: (application: Application, execution: IExecution) => void; } export declare class PipelineRegistry { private triggerTypes; private stageTypes; private transformers; private notificationTypes; private artifactKinds; constructor(); private normalizeStageTypes; registerNotification(notificationConfig: INotificationTypeConfig): void; registerTrigger(triggerConfig: ITriggerTypeConfig): void; registerTransformer(transformer: ITransformer): void; registerStage(stageConfig: IStageTypeConfig): void; /** * Registers a custom UI for a preconfigured run job stage. * * Fetches and applies the preconfigured job configuration from Gate. * The following IStageTypeConfig fields are overwritten: * * - configuration.parameters * - configuration.waitForCompletion * - defaults * - description * - label * - producesArtifacts * * @param stageConfigSkeleton a partial IStageTypeConfig (typically from makePreconfiguredJobStage()) * @returns a promise for the IStageTypeConfig that got registered */ registerPreconfiguredJobStage(stageConfigSkeleton: IStageTypeConfig): Promise; registerArtifactKind(artifactKindConfig: IArtifactKindConfig): ComponentType | SFC; getExecutionTransformers(): ITransformer[]; getNotificationTypes(): INotificationTypeConfig[]; getTriggerTypes(): ITriggerTypeConfig[]; getStageTypes(): IStageTypeConfig[]; getMatchArtifactKinds(): IArtifactKindConfig[]; getDefaultArtifactKinds(): IArtifactKindConfig[]; getCustomArtifactKind(): IArtifactKindConfig; private getCloudProvidersForStage; getConfigurableStageTypes(accounts?: IAccountDetails[]): IStageTypeConfig[]; getProvidersFor(key: string): IStageTypeConfig[]; getNotificationConfig(type: string): INotificationTypeConfig; getTriggerConfig(type: string): ITriggerTypeConfig; overrideManualExecutionComponent(triggerType: string, component: React.ComponentType): void; /** * Checks stage.type against stageType.alias to match stages that may have run as a legacy type. * StageTypes set alias='legacyName' for backwards compatibility * @param stage */ private checkAliasedStageTypes; /** * Checks stage.alias against stageType.key to gracefully degrade redirected stages * For stages that don't actually exist in orca, if we couldn't find a match for them in deck either * (i.e. deprecated/deleted) this allows us to fallback to the stage type that actually ran in orca * @param stage */ private checkAliasFallback; getStageConfig(stage: IStage): IStageTypeConfig; private static resolveCloudProvider; private getManualExecutionComponent; getManualExecutionComponentForTriggerType(triggerType: string): React.ComponentType; hasManualExecutionComponentForTriggerType(triggerType: string): boolean; getManualExecutionComponentForStage(stage: IStage): React.ComponentType; }