import { SetType, CellState } from './enums';
import { FullSet } from './full-set';
import { HintResult, SolveResult } from './result';
import { PlainGrid } from '../models/grid';
/** A griddler grid. */
export declare class Grid {
    static load(gridObject: PlainGrid): Grid;
    width: number;
    height: number;
    private _cellCache;
    private _rowLabelCache;
    private _columnLabelCache;
    get consoleRef(): string;
    get unsolvedCellCount(): number;
    get solved(): boolean;
    get gridObject(): PlainGrid;
    private constructor();
    nextHint(): HintResult;
    solve(): SolveResult;
    setState(setType: SetType, setIndex: number, cellIndex: number, state: CellState): void;
    setLabels(type: SetType, index: number, values: number[]): void;
    getFullSet(type: SetType, index: number): FullSet;
    getLabels(type: SetType, index: number): number[];
    private solveSetsRecursively;
}
