import GridData from '../grid.js';
import { State } from '../primitives.js';
import Rule from './rule.js';
class CompletePatternRule extends Rule {
    /**
     * **Complete the pattern**
     *
     * This rule validates answers based on the provided solution.
     */
    constructor() {
        super();
    }
    get id() {
        return `complete_pattern`;
    }
    get explanation() {
        return `Complete the pattern`;
    }
    createExampleGrid() {
        return CompletePatternRule.EXAMPLE_GRID;
    }
    get searchVariants() {
        return CompletePatternRule.SEARCH_VARIANTS;
    }
    validateGrid(_grid) {
        return { state: State.Incomplete };
    }
    copyWith(_) {
        return new CompletePatternRule();
    }
    get validateWithSolution() {
        return true;
    }
    get isSingleton() {
        return true;
    }
}
Object.defineProperty(CompletePatternRule, "EXAMPLE_GRID", {
    enumerable: true,
    configurable: true,
    writable: true,
    value: Object.freeze(GridData.create(['wbwbw', 'bwbwb', 'wbwbw', 'bwbwb']))
});
Object.defineProperty(CompletePatternRule, "SEARCH_VARIANTS", {
    enumerable: true,
    configurable: true,
    writable: true,
    value: [
        new CompletePatternRule().searchVariant(),
    ]
});
export default CompletePatternRule;
export const instance = new CompletePatternRule();
