import { Connection, Edge, EdgeChange } from 'reactflow';
import { StateCreator } from 'zustand';
import { ActionOptions, ActionPayload, FlattenEdges } from '../../types';
import { FlowEditorStore } from '../actions';
import { EdgeDispatch } from '../reducers/edge';
export interface PublicEdgesAction {
    dispatchEdges: (payload: EdgeDispatch, options?: ActionOptions) => void;
    addEdge: (edge: Edge) => void;
    addEdges: (edges: Record<string, Edge> | Edge[], options?: ActionOptions) => void;
    deleteEdge: (id: string) => void;
    deleteEdges: (ids: string[]) => void;
    updateEdge: (id: string, edge: Edge, options?: ActionOptions) => void;
    updateEdgeData: <T extends object>(id: string, newData: T, forceReplace?: boolean, options?: ActionOptions) => void;
}
export interface EdgesSlice extends PublicEdgesAction {
    internalUpdateEdges: (flattenEdges: FlattenEdges, payload: ActionPayload) => void;
    handleEdgesChange: (changes: EdgeChange[]) => void;
    updateEdgesOnConnection: (connection: Connection) => Edge | undefined;
    updateEdgesOnEdgeChange: (changes: EdgeChange[]) => void;
}
export declare const edgesSlice: StateCreator<FlowEditorStore, [
    ['zustand/devtools', never]
], [
], EdgesSlice>;
