import { Result } from '@badrap/result'; import { Square, Outcome, Color, Piece, Rules } from './types.js'; import { SquareSet } from './squareSet.js'; import { Setup } from './setup.js'; import { PositionError, Position, IllegalSetup, Context, Castles, Chess, FromSetupOpts } from './chess.js'; export { Position, PositionError, IllegalSetup, Context, Chess, Castles }; export declare class Crazyhouse extends Chess { protected constructor(); static default(): Crazyhouse; static fromSetup(setup: Setup, opts?: FromSetupOpts): Result; protected validate(opts?: FromSetupOpts): Result; clone(): Crazyhouse; hasInsufficientMaterial(color: Color): boolean; dropDests(ctx?: Context): SquareSet; } export declare class NewChess1 extends Chess { protected constructor(); static default(): NewChess1; static fromSetup(setup: Setup, opts?: FromSetupOpts): Result; protected validate(opts?: FromSetupOpts): Result; clone(): NewChess1; hasInsufficientMaterial(color: Color): boolean; dropDests(ctx?: Context): SquareSet; } export declare class Atomic extends Chess { protected constructor(); static default(): Atomic; static fromSetup(setup: Setup, opts?: FromSetupOpts): Result; clone(): Atomic; protected validate(opts?: FromSetupOpts): Result; protected validateCheckers(): Result; protected kingAttackers(square: Square, attacker: Color, occupied: SquareSet): SquareSet; protected playCaptureAt(square: Square, captured: Piece): void; hasInsufficientMaterial(color: Color): boolean; dests(square: Square, ctx?: Context): SquareSet; isVariantEnd(): boolean; variantOutcome(_ctx?: Context): Outcome | undefined; } export declare class Antichess extends Chess { protected constructor(); static default(): Antichess; static fromSetup(setup: Setup, opts?: FromSetupOpts): Result; clone(): Antichess; protected validate(_opts?: FromSetupOpts): Result; protected kingAttackers(_square: Square, _attacker: Color, _occupied: SquareSet): SquareSet; ctx(): Context; dests(square: Square, ctx?: Context): SquareSet; hasInsufficientMaterial(color: Color): boolean; isVariantEnd(): boolean; variantOutcome(ctx?: Context): Outcome | undefined; } export declare class KingOfTheHill extends Chess { protected constructor(); static default(): KingOfTheHill; static fromSetup(setup: Setup, opts?: FromSetupOpts): Result; clone(): KingOfTheHill; hasInsufficientMaterial(_color: Color): boolean; isVariantEnd(): boolean; variantOutcome(_ctx?: Context): Outcome | undefined; } export declare class ThreeCheck extends Chess { protected constructor(); static default(): ThreeCheck; static fromSetup(setup: Setup, opts?: FromSetupOpts): Result; clone(): ThreeCheck; hasInsufficientMaterial(color: Color): boolean; isVariantEnd(): boolean; variantOutcome(_ctx?: Context): Outcome | undefined; } export declare class RacingKings extends Chess { protected constructor(); static default(): RacingKings; static fromSetup(setup: Setup, opts?: FromSetupOpts): Result; protected validate(opts?: FromSetupOpts): Result; clone(): RacingKings; dests(square: Square, ctx?: Context): SquareSet; hasInsufficientMaterial(_color: Color): boolean; isVariantEnd(): boolean; variantOutcome(ctx?: Context): Outcome | undefined; } export declare class Horde extends Chess { protected constructor(); static default(): Horde; static fromSetup(setup: Setup, opts?: FromSetupOpts): Result; protected validate(opts?: FromSetupOpts): Result; clone(): Horde; hasInsufficientMaterial(_color: Color): boolean; isVariantEnd(): boolean; variantOutcome(_ctx?: Context): Outcome | undefined; } export declare function defaultPosition(rules: Rules): Position; export declare function setupPosition(rules: Rules, setup: Setup, opts?: FromSetupOpts): Result;