type ClueNumber = number & {
    __brand: 'ClueNumber';
};
type GridCoordinate = number & {
    __brand: 'GridCoordinate';
};
type RebusId = number & {
    __brand: 'RebusId';
};
declare const asClueNumber: (n: number) => ClueNumber;
declare const asGridCoordinate: (n: number) => GridCoordinate;
declare const asRebusId: (n: number) => RebusId;
type Direction = 'across' | 'down';
interface Puzzle {
    title?: string;
    author?: string;
    copyright?: string;
    notes?: string;
    date?: string;
    grid: Grid;
    clues: Clues;
    rebusTable?: Map<number, string>;
    additionalProperties?: Record<string, unknown>;
}
interface Grid {
    width: number;
    height: number;
    cells: Cell[][];
    additionalProperties?: Record<string, unknown>;
}
interface Cell {
    solution?: string;
    number?: number;
    isBlack: boolean;
    isCircled?: boolean;
    hasRebus?: boolean;
    rebusKey?: number;
    additionalProperties?: Record<string, unknown>;
}
interface Clues {
    across: Clue[];
    down: Clue[];
    additionalProperties?: Record<string, unknown>;
}
interface Clue {
    number: number;
    text: string;
    additionalProperties?: Record<string, unknown>;
}
interface ParseOptions {
    filename?: string;
    encoding?: BufferEncoding;
    maxGridSize?: {
        width: number;
        height: number;
    };
}
declare enum ErrorCode {
    FORMAT_DETECTION_FAILED = "FORMAT_DETECTION_FAILED",
    INVALID_FILE = "INVALID_FILE",
    UNSUPPORTED_PUZZLE_TYPE = "UNSUPPORTED_PUZZLE_TYPE",
    BINARY_PARSE_ERROR = "BINARY_PARSE_ERROR",
    IPUZ_PARSE_ERROR = "IPUZ_PARSE_ERROR",
    IPUZ_INVALID_JSON = "IPUZ_INVALID_JSON",
    IPUZ_MISSING_VERSION = "IPUZ_MISSING_VERSION",
    IPUZ_MISSING_KIND = "IPUZ_MISSING_KIND",
    IPUZ_MISSING_REQUIRED_FIELD = "IPUZ_MISSING_REQUIRED_FIELD",
    IPUZ_INVALID_DATA_TYPE = "IPUZ_INVALID_DATA_TYPE",
    IPUZ_INVALID_GRID_SIZE = "IPUZ_INVALID_GRID_SIZE",
    PUZ_PARSE_ERROR = "PUZ_PARSE_ERROR",
    PUZ_INVALID_HEADER = "PUZ_INVALID_HEADER",
    PUZ_INVALID_GRID = "PUZ_INVALID_GRID",
    PUZ_CHECKSUM_MISMATCH = "PUZ_CHECKSUM_MISMATCH",
    JPZ_PARSE_ERROR = "JPZ_PARSE_ERROR",
    JPZ_INVALID_XML = "JPZ_INVALID_XML",
    JPZ_MISSING_GRID = "JPZ_MISSING_GRID",
    JPZ_INVALID_GRID = "JPZ_INVALID_GRID",
    XD_PARSE_ERROR = "XD_PARSE_ERROR",
    XD_FORMAT_ERROR = "XD_FORMAT_ERROR",
    XD_INVALID_GRID = "XD_INVALID_GRID",
    XD_MISSING_CLUES = "XD_MISSING_CLUES"
}
interface ErrorContext {
    line?: number;
    column?: number;
    field?: string;
    offset?: number;
    details?: Record<string, unknown>;
}

export { type ClueNumber as C, type Direction as D, ErrorCode as E, type GridCoordinate as G, type ParseOptions as P, type RebusId as R, type Puzzle as a, type ErrorContext as b, asClueNumber as c, asGridCoordinate as d, asRebusId as e, type Grid as f, type Cell as g, type Clues as h, type Clue as i };
