import * as React from 'react';
import type { GraphLegendDefinition } from '../shared/editor-overlay';
import type { CausalGraph, CausalGraphEdge, CausalGraphNode, EdgeConstraint, SimulationEdge, ZoomThresholds } from '../types';
import { EditorMode } from '../types';
import type { GraphLayout } from '../shared/graph-layout';
import type { PixiEdgeStyle } from '../shared/rendering/edge';
import type { Settings } from '../shared/settings-context';
export interface CausalGraphEditorProps extends Settings {
    /** Optional additional legends to show */
    additionalLegends?: GraphLegendDefinition[];
    /** Input nodes */
    availableInputs?: string[];
    /** Standard class name prop */
    className?: string;
    /** default legends per editor mode */
    defaultLegends?: Record<EditorMode, GraphLegendDefinition[]>;
    /** Any extra sections to display in the side panel on edge click */
    edgeExtrasContent?: React.ReactElement;
    /** The backend data */
    graphData?: CausalGraph;
    /** Graph layout to use */
    graphLayout: GraphLayout;
    /** Optional initial constraints to show in edge encoder mode */
    initialConstraints?: EdgeConstraint[];
    /** Any extra sections to display in the side panel on node click */
    nodeExtrasContent?: React.ReactElement;
    /** Array of node names that cannot be removed */
    nonRemovableNodes?: Array<string>;
    /** Event handler for clicking on an edge */
    onClickEdge?: (edge: CausalGraphEdge) => void | Promise<void>;
    /** Event handler for clicking on a node */
    onClickNode?: (node: CausalGraphNode) => void | Promise<void>;
    /** Handler called when constraints are update in edge encoder mode */
    onEdgeConstraintsUpdate?: (constraints: EdgeConstraint[]) => void | Promise<void>;
    /** onUpdate handler for live updating the edited graph */
    onUpdate?: (data: CausalGraph) => void | Promise<void>;
    /** Optional handler to process the edge style */
    processEdgeStyle?: (edge: PixiEdgeStyle, attributes: SimulationEdge) => PixiEdgeStyle;
    /** Whether focusing the graph is required before mousewheel zooming is enabled */
    requireFocusToZoom?: boolean;
    /** Optional boolean defining whether a node and an edge can be selected simultaneously */
    simultaneousEdgeNodeSelection?: boolean;
    /** Pass through of the native style prop */
    style?: React.CSSProperties;
    /** Optional parameter to force a tooltip to use a particular font size */
    tooltipSize?: number;
    /** Optional parameter to specify when parts of the graph should be hidden. */
    zoomThresholds?: ZoomThresholds;
    /** Optional id property */
    id?: string;
}
declare function CausalGraphEditor(props: CausalGraphEditorProps): React.ReactNode;
export default CausalGraphEditor;
//# sourceMappingURL=causal-graph-editor.d.ts.map