import { GraphSpec } from '../spec'; interface TestNode { id: string; type?: string; data?: Record; partition?: "left" | "right"; } interface TestEdge { source: string; target: string; weight?: number; type?: string; } interface SeededRandom { next(): number; integer(min: number, max: number): number; choice(array: T[]): T; } /** * Generate tree graph (acyclic connected graph). * Trees have exactly n-1 edges and no cycles. * @param nodes - Node list * @param edges - Edge list to populate * @param spec - Graph specification * @param rng - Seeded random number generator */ export declare const generateTreeEdges: (nodes: TestNode[], edges: TestEdge[], spec: GraphSpec, rng: SeededRandom) => void; /** * Generate star graph (center node connected to all other nodes). * Star graphs are trees with one central node and n-1 leaves. * @param nodes - Node list * @param edges - Edge list to populate * @param spec - Graph specification * @param rng - Seeded random number generator */ export declare const generateStarEdges: (nodes: TestNode[], edges: TestEdge[], spec: GraphSpec, rng: SeededRandom) => void; /** * Generate wheel graph (cycle + hub). * Wheel graphs have a central hub connected to all nodes in a cycle. * The hub is the first node, and the remaining nodes form the cycle. * @param nodes - Node list * @param edges - Edge list to populate * @param spec - Graph specification * @param _rng - Seeded random number generator (unused for deterministic structure) */ export declare const generateWheelEdges: (nodes: TestNode[], edges: TestEdge[], spec: GraphSpec, _rng: SeededRandom) => void; /** * Generate grid graph (2D lattice). * Grid graphs are arranged in rows × cols grid with 4-connectivity. * @param nodes - Node list * @param edges - Edge list to populate * @param spec - Graph specification * @param _rng - Seeded random number generator (unused for deterministic structure) */ export declare const generateGridEdges: (nodes: TestNode[], edges: TestEdge[], spec: GraphSpec, _rng: SeededRandom) => void; /** * Generate toroidal graph (grid with wraparound). * Toroidal graphs are grids where edges wrap around both horizontally and vertically. * @param nodes - Node list * @param edges - Edge list to populate * @param spec - Graph specification * @param _rng - Seeded random number generator (unused for deterministic structure) */ export declare const generateToroidalEdges: (nodes: TestNode[], edges: TestEdge[], spec: GraphSpec, _rng: SeededRandom) => void; /** * Generate binary tree (each node has ≤ 2 children). * Supports three variants: * - binary_tree: each node has 0, 1, or 2 children * - full_binary: each node has 0 or 2 children (no nodes with 1 child) * - complete_binary: all levels filled except possibly last, filled left-to-right * @param nodes - Node list * @param edges - Edge list to populate * @param spec - Graph specification * @param rng - Seeded random number generator */ export declare const generateBinaryTreeEdges: (nodes: TestNode[], edges: TestEdge[], spec: GraphSpec, rng: SeededRandom) => void; /** * Generate tournament graph (complete oriented graph). * Tournament graphs have exactly one directed edge between each pair of vertices. * For every pair (u, v), exactly one of u→v or v→u exists, never both. * @param nodes - Node list * @param edges - Edge list to populate * @param spec - Graph specification * @param rng - Seeded random number generator */ export declare const generateTournamentEdges: (nodes: TestNode[], edges: TestEdge[], spec: GraphSpec, rng: SeededRandom) => void; /** * Generate k-regular graph (all vertices have degree k). * Uses the configuration model: create k stubs per vertex, then randomly pair them. * @param nodes - Node list * @param edges - Edge list to populate * @param spec - Graph specification * @param k - Degree of each vertex * @param rng - Seeded random number generator */ export declare const generateRegularEdges: (nodes: TestNode[], edges: TestEdge[], spec: GraphSpec, k: number, rng: SeededRandom) => void; export {}; //# sourceMappingURL=core-structures.d.ts.map