export interface SudokuCell { id: `y=${number},x=${number}`; x: number; y: number; box: SudokuCell[]; row: SudokuCell[]; column: SudokuCell[]; validators: Set; candidates: Set; value: number; } export type SudokuChange = { type: 'assignment'; x: number; y: number; value: number; } | { type: 'candidate'; x: number; y: number; value: number; }; export declare class SudokuSolver { output: { grid: number[][]; candidates: number[][][]; changes: SudokuChange[]; }; protected grid: number[][]; size: number; blockSize: number; protected boxes: SudokuCell[][][]; columns: SudokuCell[][]; rows: SudokuCell[][]; protected cells: SudokuCell[]; protected allCandidates: Set; constructor(sudoku: number[][] | { sudoku: string; delimiter: string; }); protected updateCellValue(cell: SudokuCell, value: number): void; protected removeCellCandidate(cell: SudokuCell, value: number): void; removeInvalidCandidates(): void; applyNakedSingles(): void; applyNakedGroup(size: number): void; applyHiddenGroup(size: number): void; findEmptyCell(): { cell?: undefined; candidates?: undefined; } | { cell: SudokuCell; candidates: Set; }; bruteForce(): boolean; printCells(): void; solve(): void; } //# sourceMappingURL=solver.d.ts.map