import { Edge, Position } from './primitives.js';
import TileConnections from './tileConnections.js';
export default class GridConnections {
    readonly edges: readonly Edge[];
    constructor(edges?: readonly Edge[]);
    addEdge(edge: Edge): GridConnections;
    removeEdge(edge: Edge): GridConnections;
    isConnected(edge: Edge): boolean;
    getConnectionsAt({ x, y }: Position): readonly Edge[];
    getForTile({ x, y }: Position): TileConnections;
    getConnectedTiles({ x, y }: Position): readonly Position[];
    /**
     * Create new GridConnections from a string array.
     *
     * - Use `.` for cells that don't connect to anything.
     * - Use any other character for cells that connect to the same character.
     *
     * @param array - The string array to create the connections from.
     * @returns The created connections. You can apply this to a GridData object using GridData.withConnections.
     */
    static create(array: string[]): GridConnections;
    /**
     * Check if two GridConnections objects are equal.
     * @param other The other GridConnections object to compare to.
     * @returns Whether the two objects are equal.
     */
    equals(other: GridConnections): 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[];
    insertColumn(index: number): GridConnections;
    insertRow(index: number): GridConnections;
    removeColumn(index: number): GridConnections;
    removeRow(index: number): GridConnections;
}
