///
import type { IExecution, IExecutionStageSummary, IPipeline, IStage } from '../../../domain';
export interface IExecutionViewState {
activeStageId: number;
activeSubStageId: number;
canConfigure: boolean;
canTriggerPipelineManually: boolean;
executionId?: string;
section?: string;
stageIndex?: number;
}
export interface IPipelineGraphLink {
child: IPipelineGraphNode;
isHighlighted?: boolean;
line: string;
linkClass?: string;
parent: IPipelineGraphNode;
}
export interface IPipelineGraphNode {
childLinks: IPipelineGraphLink[];
children: IPipelineGraphNode[];
color?: string;
height?: number;
id: string | number;
index?: number;
leaf?: boolean;
name: string;
parentIds: Array;
parentLinks: IPipelineGraphLink[];
parents: IPipelineGraphNode[];
placeholder?: boolean;
root?: boolean;
graphRowOverride?: number;
row?: number;
x?: number;
y?: number;
extraLabelLines?: number;
hasWarnings?: boolean;
isActive: boolean;
isHighlighted: boolean;
lastPhase?: number;
phase?: number;
section?: string;
warnings?: {
messages: string[];
};
executionStage?: boolean;
hasNotStarted?: boolean;
labelComponent?: React.ComponentType<{
stage: IExecutionStageSummary;
}>;
masterStage?: IStage;
stage?: IExecutionStageSummary;
status?: string;
}
export declare class PipelineGraphService {
static xScrollOffset: any;
static generateExecutionGraph(execution: IExecution, viewState: IExecutionViewState): IPipelineGraphNode[];
static generateConfigGraph(pipeline: IPipeline, viewState: IExecutionViewState, pipelineValidations: any): IPipelineGraphNode[];
}