interface BestMove {
    move: string;
    algebraic: string;
    score: number;
    mate: number | null;
    isDraw: boolean;
}
export interface BestMovesResult {
    moves: BestMove[];
    position: string;
    depth: number;
    nodes: number;
    time: number;
}
export interface EvaluationResult {
    score: number;
    isMate: boolean;
    moveNumber?: number;
}
export interface MoveResult {
    isLegal: boolean;
    resultingFen: string;
}
export declare class ChessEngine {
    private engine;
    private engineReady;
    private enginePath;
    constructor(enginePath?: string);
    init(): Promise<void>;
    quit(): Promise<void>;
    evaluatePosition(fen: string, depth?: number, returnMoves?: number): Promise<EvaluationResult | BestMovesResult>;
    getBestMoves(fen: string, options?: {
        depth?: number;
        numMoves?: number;
        timeLimit?: number;
    }): Promise<BestMovesResult>;
    playMove(fen: string, move: string): Promise<MoveResult>;
    isReady(): boolean;
}
export {};
