@logic-pad/core
Version:
33 lines (32 loc) • 1.18 kB
TypeScript
import { AnyConfig } from '../config.js';
import GridData from '../grid.js';
import { RuleState } from '../primitives.js';
import Rule, { SearchVariant } from './rule.js';
export default class CustomRule extends Rule {
readonly description: string;
readonly grid: GridData;
private static readonly EXAMPLE_GRID;
static readonly configs: readonly AnyConfig[];
private static readonly SEARCH_VARIANTS;
/**
* A custom rule with a description and thumbnail grid.
*
* This rule validates answers based on the provided solution.
*
* @param description - The description of the rule.
* @param grid - The thumbnail grid of the rule, preferably 5x4 in size.
*/
constructor(description: string, grid: GridData);
get id(): string;
get explanation(): string;
get configs(): readonly AnyConfig[] | null;
createExampleGrid(): GridData;
get searchVariants(): SearchVariant[];
validateGrid(_grid: GridData): RuleState;
copyWith({ description, grid, }: {
description?: string;
grid?: GridData;
}): this;
get validateWithSolution(): boolean;
}
export declare const instance: CustomRule;