import { Square } from "./interfaces.js";
declare namespace ChessPointers {
    class BasicPointer {
        readonly x: number;
        readonly y: number;
        readonly board: Square[][];
        constructor(x: number, y: number, board: Square[][]);
        at(): Square;
        getNeighbours(): BasicPointer[];
        getPassableNeighbours(): BasicPointer[];
        toString(): string;
        static areSame(a: BasicPointer, b: BasicPointer): boolean;
        protected isWithinBounds(x: number, y: number): boolean;
    }
    class KnightPointer extends BasicPointer {
        getNeighbours(): KnightPointer[];
    }
    class KingPointer extends BasicPointer {
        getNeighbours(): KingPointer[];
    }
    class BishopPointer extends BasicPointer {
        getNeighbours(): BishopPointer[];
        getPassableNeighbours(): BishopPointer[];
    }
    class RookPointer extends BasicPointer {
        getNeighbours(): RookPointer[];
        getPassableNeighbours(): RookPointer[];
    }
    class PawnPointer extends BasicPointer {
        getNeighbours(): PawnPointer[];
    }
    class QueenPointer extends BasicPointer {
        getNeighbours(): QueenPointer[];
        getPassableNeighbours(): QueenPointer[];
    }
}
export default ChessPointers;
