import { Edge, Position } from './primitives.js';
export default class GridZones {
    readonly edges: readonly Edge[];
    constructor(edges?: readonly Edge[]);
    addEdge(edge: Edge): GridZones;
    removeEdge(edge: Edge): GridZones;
    hasEdge(edge: Edge): boolean;
    getEdgesAt({ x, y }: Position): readonly Edge[];
    /**
     * Check if two GridZones objects are equal.
     * @param other The other GridZones object to compare to.
     * @returns Whether the two objects are equal.
     */
    equals(other: GridZones): boolean;
    /**
     * Deduplicate an array of edges.
     * @param edges The array of edges to deduplicate.
     * @returns The deduplicated array of edges.
     */
    static deduplicateEdges(edges: readonly Edge[]): readonly Edge[];
    static validateEdges(connections: GridZones, width: number, height: number): GridZones;
    insertColumn(index: number): GridZones;
    insertRow(index: number): GridZones;
    removeColumn(index: number): GridZones;
    removeRow(index: number): GridZones;
}
