import { AnyConfig } from '../config.js';
import GridData from '../grid.js';
import { RuleState, Position, Mode } from '../primitives.js';
import Rule, { SearchVariant } from './rule.js';
export default class ForesightRule extends Rule {
    readonly count: number;
    readonly regenInterval: number;
    readonly startFull: boolean;
    readonly solvePath: Position[];
    readonly title = "Foresight";
    get configExplanation(): string;
    private static readonly EXAMPLE_GRID;
    private static readonly CONFIGS;
    private static readonly SEARCH_VARIANTS;
    /**
     * **Foresight: Show hints**
     */
    constructor(count: number, regenInterval: number, startFull: boolean, solvePath?: Position[]);
    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;
    get isSingleton(): boolean;
    modeVariant(mode: Mode): Rule | null;
    copyWith({ count, regenInterval, startFull, solvePath, }: {
        count?: number;
        regenInterval?: number;
        startFull?: boolean;
        solvePath?: Position[];
    }): this;
}
export declare const instance: ForesightRule;
