export declare type SquareValue = "empty" | "filled" | "marked"; export declare type LineType = "col" | "row"; /** * Structure that makes up the hint * number values. */ export interface Hints { rows: number[][]; cols: number[][]; } export declare type Crossout = true | false | "true_but" | "false_but"; export declare type LineAnalysisItemType = "free" | "filled"; export declare type LineAnalysisItem = [count: number, type: LineAnalysisItemType]; export declare type LineAnalysis = LineAnalysisItem[]; export declare type AppliableLineAnalysisItemType = LineAnalysisItemType | "free_but" | "filled_but"; export declare type AppliableLineAnalysisItem = [ count: number, type: AppliableLineAnalysisItemType ]; export declare type AppliableLineAnalysis = AppliableLineAnalysisItem[]; export declare function isFree(type: AppliableLineAnalysisItemType): boolean; export declare function isFilled(type: AppliableLineAnalysisItemType): boolean; export declare type MouseButton = "none" | "left" | "right"; export interface HintCrossout { hint: number; crossout: Crossout; } export interface HintCrossoutLine { line: HintCrossout[]; overflow: boolean; completed: boolean; } export interface HintsCrossout { rows: HintCrossoutLine[]; cols: HintCrossoutLine[]; } export interface NonogramActions { canUndo: boolean; canRedo: boolean; undo: () => void; redo: () => void; restart: () => void; setGridHidden: (hidden: boolean) => void; nextState: (grid: SquareValue[]) => void; getProgress: () => number; getCurrentBoard: () => SquareValue[]; }