import React__default from 'react';
import { y as NodeData, M as ManifestMetadata, A as CatalogMetadata, w as ColumnLineageData, Y as LineageDiffViewOptions, aL as Run, t as CllInput } from './lineagecheck-BQaKAQzn.js';
import { Node, Edge } from '@xyflow/react';

/**
 * The types for internal data structures.
 */
type LineageFrom = "both" | "base" | "current";
type LineageGraphNode = Node<{
    id: string;
    name: string;
    from: LineageFrom;
    data: {
        base?: NodeData;
        current?: NodeData;
    };
    changeStatus?: "added" | "removed" | "modified";
    change?: {
        category: "breaking" | "non_breaking" | "partial_breaking" | "unknown";
        columns: Record<string, "added" | "removed" | "modified"> | null;
    };
    resourceType?: string;
    packageName?: string;
    parents: Record<string, LineageGraphEdge>;
    children: Record<string, LineageGraphEdge>;
}, "lineageGraphNode">;
type LineageGraphColumnNode = Node<{
    node: LineageGraphNode["data"];
    column: string;
    type: string;
    transformationType?: string;
    changeStatus?: "added" | "removed" | "modified";
}, "lineageGraphColumnNode">;
type LineageGraphEdge = Edge<{
    from: LineageFrom;
    changeStatus?: "added" | "removed";
}, "lineageGraphEdge">;
type LineageGraphNodes = LineageGraphNode | LineageGraphColumnNode;
interface LineageGraph {
    nodes: Record<string, LineageGraphNode>;
    edges: Record<string, LineageGraphEdge>;
    modifiedSet: string[];
    manifestMetadata: {
        base?: ManifestMetadata;
        current?: ManifestMetadata;
    };
    catalogMetadata: {
        base?: CatalogMetadata;
        current?: CatalogMetadata;
    };
}

type NewType = LineageDiffViewOptions;
type ActionMode = "per_node" | "multi_nodes";
interface NodeAction {
    mode: ActionMode;
    status?: "pending" | "running" | "success" | "failure" | "skipped";
    skipReason?: string;
    run?: Run;
}
interface ActionState {
    mode: ActionMode;
    status: "pending" | "running" | "canceling" | "canceled" | "completed";
    currentRun?: Partial<Run>;
    completed: number;
    total: number;
    actions: Record<string, NodeAction>;
}
interface LineageViewContextType {
    interactive: boolean;
    nodes: LineageGraphNodes[];
    focusedNode?: LineageGraphNode;
    selectedNodes: LineageGraphNode[];
    cll: ColumnLineageData | undefined;
    showContextMenu: (event: React__default.MouseEvent, node: LineageGraphNodes) => void;
    viewOptions: LineageDiffViewOptions;
    onViewOptionsChanged: (options: NewType) => void;
    selectMode: "selecting" | "action_result" | undefined;
    selectNode: (nodeId: string) => void;
    selectParentNodes: (nodeId: string, degree?: number) => void;
    selectChildNodes: (nodeId: string, degree?: number) => void;
    deselect: () => void;
    isNodeHighlighted: (nodeId: string) => boolean;
    isNodeSelected: (nodeId: string) => boolean;
    isEdgeHighlighted: (source: string, target: string) => boolean;
    getNodeAction: (nodeId: string) => NodeAction;
    getNodeColumnSet: (nodeId: string) => Set<string>;
    isNodeShowingChangeAnalysis: (nodeId: string) => boolean;
    runRowCount: () => Promise<void>;
    runRowCountDiff: () => Promise<void>;
    runValueDiff: () => Promise<void>;
    addLineageDiffCheck: (viewMode?: string) => void;
    addSchemaDiffCheck: () => void;
    cancel: () => void;
    actionState: ActionState;
    centerNode: (nodeId: string) => void;
    showColumnLevelLineage: (cll?: CllInput) => Promise<void>;
    resetColumnLevelLineage: (previous?: boolean) => Promise<void>;
}
declare const LineageViewContext: React__default.Context<LineageViewContextType>;
declare const useLineageViewContext: () => LineageViewContextType | undefined;

export { LineageViewContext as L, type LineageGraphNode as a, type LineageGraphEdge as b, type LineageGraphColumnNode as c, type LineageGraph as d, useLineageViewContext as u };
