UNPKG

@logic-pad/core

Version:
38 lines (37 loc) 1.68 kB
import { AnyConfig } from '../config.js'; import { FinalValidationHandler } from '../events/onFinalValidation.js'; import { GridChangeHandler } from '../events/onGridChange.js'; import { GridResizeHandler } from '../events/onGridResize.js'; import GridData from '../grid.js'; import { GridState, RuleState } from '../primitives.js'; import Rule, { SearchVariant } from './rule.js'; export default class MysteryRule extends Rule implements FinalValidationHandler, GridChangeHandler, GridResizeHandler { readonly solution: GridData; readonly visible: boolean; private static readonly EXAMPLE_GRID; private static readonly CONFIGS; private static readonly SEARCH_VARIANTS; /** * **Mystery: alternate solution** */ constructor(solution: GridData, visible: boolean); get id(): string; get explanation(): string; get visibleWhenSolving(): boolean; get configs(): readonly AnyConfig[] | null; createExampleGrid(): GridData; get searchVariants(): SearchVariant[]; validateGrid(grid: GridData): RuleState; get necessaryForCompletion(): boolean; onFinalValidation(grid: GridData, _solution: GridData | null, state: GridState): GridState; onGridChange(newGrid: GridData): this; onGridResize(_grid: GridData, mode: 'insert' | 'remove', direction: 'row' | 'column', index: number): this | null; copyWith({ solution, visible, }: { solution?: GridData; visible?: boolean; }): this; withSolution(solution: GridData): this; withVisible(visible: boolean): this; static cleanSolution(solution: GridData, baseGrid?: GridData): GridData; } export declare const instance: MysteryRule;