import { Coordinate } from "./coordinate";
import { Color } from "./color";
import { PieceType } from "./piece/piece.constants";
import { MovementRules, PostMovementRules } from "./rules/piece-movement/movement-rules.const";
import { Direction } from "./rules/piece-movement/movement-rule";
export declare class RulesRepository {
    private pawnDefaultTransformationTypes;
    getPawnTransformationPieces(): PieceType[];
    getDefaultPawnRules(color: Color, withPostRulest?: boolean): {
        movementRules: ({
            id: `${string}-${string}-${string}-${string}-${string}`;
            name: MovementRules;
            moveToEmpty: boolean;
            moveToKill: boolean;
            collision: boolean;
            distance: number;
            directions: Direction[];
            speed: number;
            activatePositions?: undefined;
        } | {
            id: `${string}-${string}-${string}-${string}-${string}`;
            name: MovementRules;
            moveToEmpty: boolean;
            moveToKill: boolean;
            collision: boolean;
            distance: number;
            speed: number;
            directions: Direction[];
            activatePositions: {
                y: number[];
            };
        })[];
        postMovementRules: {
            id: `${string}-${string}-${string}-${string}-${string}`;
            name: PostMovementRules;
            color: Color;
            maxCharges: number;
            triggerOnY: number;
            possiblePiecesTypes: PieceType[];
        }[];
    };
    getDefaultRookRules(): {
        movementRules: {
            id: `${string}-${string}-${string}-${string}-${string}`;
            name: MovementRules;
            moveToEmpty: boolean;
            moveToKill: boolean;
            collision: boolean;
            distance: number;
            directions: Direction[];
            speed: number;
        }[];
    };
    getDefaultBishopRules(): {
        movementRules: {
            id: `${string}-${string}-${string}-${string}-${string}`;
            name: MovementRules;
            moveToEmpty: boolean;
            moveToKill: boolean;
            collision: boolean;
            distance: number;
            directions: Direction[];
            speed: number;
        }[];
    };
    getDefaultKnightRules(): {
        movementRules: {
            id: `${string}-${string}-${string}-${string}-${string}`;
            name: MovementRules;
            moveToEmpty: boolean;
            moveToKill: boolean;
            collision: boolean;
            distance: number;
            directions: Direction[];
            speed: number;
        }[];
    };
    getDefaultQueenRules(): {
        movementRules: {
            id: `${string}-${string}-${string}-${string}-${string}`;
            name: MovementRules;
            moveToEmpty: boolean;
            moveToKill: boolean;
            collision: boolean;
            distance: number;
            directions: Direction[];
            speed: number;
        }[];
    };
    getDefaultKingsideCastling(color: Color): {
        id: `${string}-${string}-${string}-${string}-${string}`;
        name: MovementRules;
        moveToEmpty: boolean;
        moveToKill: boolean;
        collision: boolean;
        distance: number;
        directions: Direction[];
        speed: number;
        color: Color;
        mainPieceCoordinate: Coordinate;
        foreginPieceCoordinate: Coordinate;
    };
    getDefaultQueenSideCastling(color: Color): {
        id: `${string}-${string}-${string}-${string}-${string}`;
        name: MovementRules;
        moveToEmpty: boolean;
        moveToKill: boolean;
        collision: boolean;
        distance: number;
        directions: Direction[];
        speed: number;
        color: Color;
        mainPieceCoordinate: Coordinate;
        foreginPieceCoordinate: Coordinate;
    };
    getDefaultKingRules(color: Color): {
        movementRules: ({
            id: `${string}-${string}-${string}-${string}-${string}`;
            name: MovementRules;
            moveToEmpty: boolean;
            moveToKill: boolean;
            collision: boolean;
            distance: number;
            directions: Direction[];
            speed: number;
            color: Color;
            mainPieceCoordinate: Coordinate;
            foreginPieceCoordinate: Coordinate;
        } | {
            id: `${string}-${string}-${string}-${string}-${string}`;
            name: MovementRules;
            moveToEmpty: boolean;
            moveToKill: boolean;
            collision: boolean;
            distance: number;
            directions: Direction[];
            speed: number;
        })[];
    };
}
