import { FlowNode } from './helpers/sitemapToFlow';
import { Element, PageFolder } from '@plitzi/sdk-shared';
import { Node, Connection, Edge } from '@xyflow/react';
export type { Connection, Edge, Node, FlowNode };
export type AccessLevel = 'none' | 'public' | 'authenticated';
export type WorkflowNodePage = {
    type: 'page';
    path: string;
    isDefault: boolean;
};
export type WorkflowNodeFolder = {
    type: 'folder';
    path?: string;
    children: WorkflowNode[];
};
export type WorkflowNode = {
    id: string;
    title: string;
    accessLevel: AccessLevel;
    description?: string;
    icon?: string;
} & (WorkflowNodePage | WorkflowNodeFolder);
export type Template = {
    version: string;
    lastUpdated: Date;
    nodes: WorkflowNode[];
};
export type WorkflowDiagramProps = {
    pages: Element[];
    pageFolders: PageFolder[];
    onAddNode?: (nodeType: 'page' | 'folder' | 'custom') => void;
    onAddEdge?: (edge: Connection) => void;
    onRemoveEdge?: (edge: Connection | Edge) => void;
    onRemoveNode?: (node: Node) => void;
};
declare const WorkflowDiagram: ({ pages, pageFolders, onAddNode, onAddEdge, onRemoveNode, onRemoveEdge }: WorkflowDiagramProps) => import("react/jsx-runtime").JSX.Element;
export default WorkflowDiagram;
