import { AnyConfig } from '../config.js';
import { SymbolValidationHandler } from '../events/onSymbolValidation.js';
import GridData from '../grid.js';
import { RuleState, State } from '../primitives.js';
import Symbol from '../symbols/symbol.js';
import Rule, { SearchVariant } from './rule.js';
export default class OffByXRule extends Rule implements SymbolValidationHandler {
    readonly number: number;
    readonly title = "Off By X";
    private static readonly CONFIGS;
    private static readonly EXAMPLE_GRID;
    private static readonly SEARCH_VARIANTS;
    /**
     * **All numbers are off by &lt;number&gt;**
     *
     * @param number - The number that all cells are off by.
     */
    constructor(number: number);
    get id(): string;
    get explanation(): string;
    get configs(): readonly AnyConfig[] | null;
    createExampleGrid(): GridData;
    get searchVariants(): SearchVariant[];
    validateGrid(grid: GridData): RuleState;
    onSymbolValidation(grid: GridData, symbol: Symbol, _validator: (grid: GridData) => State): State | undefined;
    get isSingleton(): boolean;
    copyWith({ number }: {
        number?: number;
    }): this;
    withNumber(number: number): this;
}
export declare const instance: OffByXRule;
