/// <reference types="react" />
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<string | number>;
    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[];
}
