export type DefinitionGraphNodeKind = "task" | "external-task"; export type GraphEffectKind = "shell" | "deferred-shell" | "agent" | "function" | "unknown"; export interface GraphTaskLike { id: string; dependsOn?: readonly string[]; inputs?: readonly string[]; outputs?: readonly string[]; steps?: readonly unknown[]; cache?: unknown; source?: { name?: string; }; } export interface GraphJobLike { id: string; target: readonly string[]; } export interface GraphPipelineLike { name: string; tasks: Record; jobs: Record; sources: Record; } export interface GraphEffect { index: number; kind: GraphEffectKind; timing: "runtime"; } export interface DefinitionGraphNode { id: string; kind: DefinitionGraphNodeKind; fingerprint: string; dependsOn: string[]; dependents: string[]; inputs: string[]; outputs: string[]; effects: GraphEffect[]; cache?: unknown; source?: string; } export interface DefinitionGraph { pipelineName: string; nodes: Record; executionOrder: string[]; } export interface ExecutionGraph { pipelineName: string; nodes: Record; executionOrder: string[]; } export interface PipelineGraphProjection { tasks: Array<{ id: string; dependsOn: string[]; dependents: string[]; }>; executionOrder: string[]; } export interface ExecutionGraphSnapshot { schemaVersion: 1; pipelineName: string; jobId: string; executionOrder: string[]; nodes: ExecutionGraphSnapshotNode[]; } export interface ExecutionGraphSnapshotNode { id: string; kind: DefinitionGraphNodeKind; fingerprint: string; dependsOn: string[]; dependents: string[]; inputs: string[]; outputs: string[]; effects: GraphEffect[]; source?: string; } export declare function compileDefinitionGraph(pipeline: GraphPipelineLike): DefinitionGraph; export declare function selectExecutionGraph(pipeline: GraphPipelineLike, targets: readonly string[]): ExecutionGraph; export declare function selectJobExecutionGraph(pipeline: GraphPipelineLike, jobId: string): ExecutionGraph; export declare function projectPipelineGraph(graph: DefinitionGraph | ExecutionGraph): PipelineGraphProjection; export declare function snapshotExecutionGraph(graph: ExecutionGraph, options: { jobId: string; }): ExecutionGraphSnapshot; //# sourceMappingURL=graph.d.ts.map