import "@xyflow/react/dist/style.css";
import type { GraphOrientation, GraphLayoutSnapshot, TaskDependency, TaskItem, ProjectPermission } from "../types";
export declare function DependencyGraphView(props: {
    projectId?: string;
    layoutKey?: string;
    tasks: TaskItem[];
    dependencies: TaskDependency[];
    savedLayout?: GraphLayoutSnapshot | null;
    selectedTaskId: string | null;
    selectedDependencyId?: string | null;
    onSelectTask: (taskId: string) => void;
    onSelectDependency?: (taskId: string, dependencyId: string) => void;
    onClearDependencySelection?: () => void;
    permission?: ProjectPermission;
    canPersistLayout?: boolean;
    onPersistLayout?: (layout: GraphLayoutSnapshot) => Promise<GraphLayoutSnapshot | null>;
    onLayoutSaved?: (layout: GraphLayoutSnapshot | null) => void;
    highlightBlockedTasks?: boolean;
    showExecutionStateBadges?: boolean;
    emptyStateTitle?: string;
    emptyStateDescription?: string;
    orientation?: GraphOrientation;
    autoLayoutStrategy?: "allEdges" | "hierarchy";
    showOrientationToggle?: boolean;
    /** Debounce before persisting layout (API or parent callback). Use 0 for immediate sync (e.g. project template draft). */
    layoutSaveDebounceMs?: number;
    /** When set, shows a create-dependent-task action near the right handle of each node. */
    onAddDependentTaskFromNode?: (taskId: string) => void;
    /** When set, shows a create-subtask action near the bottom handle of each node. */
    onAddChildTaskFromNode?: (taskId: string) => void;
    /** Remove control on each node (e.g. project template task templates). */
    onRemoveTask?: (taskId: string) => void;
    /** Enable creating graph relationships by dragging from source handles to target handles. */
    allowDependencyConnect?: boolean;
    /** Called when the graph creates a new dependency link. */
    onCreateDependency?: (dependsOnTaskId: string, taskId: string) => void;
    /** Called when the graph creates a parent-child relationship from the bottom handle. */
    onCreateChildRelationship?: (parentTaskId: string, childTaskId: string) => void;
    /** MiniMap (overview) width in px. */
    miniMapWidth?: number;
    /** MiniMap (overview) height in px. */
    miniMapHeight?: number;
    /** When false, the overview minimap is not rendered (e.g. narrow mobile layouts). */
    showMiniMap?: boolean;
}): import("react/jsx-runtime").JSX.Element;
