UNPKG

@logic-pad/core

Version:
33 lines (32 loc) 1.64 kB
import GridData from '../grid.js'; import GridConnections from '../gridConnections.js'; import Rule from '../rules/rule.js'; import TileData from '../tile.js'; import Symbol from '../symbols/symbol.js'; import { Puzzle, PuzzleData } from '../puzzle.js'; import GridZones from '../gridZones.js'; export default abstract class SerializerBase { abstract get version(): number; abstract stringifyTile(tile: TileData): string; abstract parseTile(str: string): TileData; abstract stringifyRule(rule: Rule): string; abstract stringifySymbol(symbol: Symbol): string; abstract parseRule(str: string): Rule; abstract parseSymbol(str: string): Symbol; abstract stringifyConnections(connections: GridConnections): string; abstract parseConnections(input: string): GridConnections; abstract stringifyZones(zones: GridZones): string; abstract parseZones(input: string): GridZones; abstract stringifyTiles(tiles: readonly (readonly TileData[])[]): string; abstract parseTiles(input: string): TileData[][]; abstract stringifyRules(rules: readonly Rule[]): string; abstract parseRules(input: string): Rule[]; abstract stringifySymbols(symbols: ReadonlyMap<string, readonly Symbol[]>): string; abstract parseSymbols(input: string): Map<string, Symbol[]>; abstract stringifyGrid(grid: GridData): string; abstract parseGrid(input: string): GridData; abstract stringifyGridWithSolution(puzzle: PuzzleData): string; abstract parseGridWithSolution(input: string): PuzzleData; abstract stringifyPuzzle(puzzle: Puzzle): string; abstract parsePuzzle(input: string): Puzzle; }