shared client types
This commit is contained in:
@@ -0,0 +1,79 @@
|
|||||||
|
export type CellType = 'black' | 'empty'
|
||||||
|
export type CellStatus = 'default' | 'correct' | 'incorrect' | 'revealed'
|
||||||
|
export type Direction = 'across' | 'down'
|
||||||
|
|
||||||
|
export interface ClientPuzzle {
|
||||||
|
width: number
|
||||||
|
height: number
|
||||||
|
cells: CellType[][]
|
||||||
|
clues_across: ClientClue[]
|
||||||
|
clues_down: ClientClue[]
|
||||||
|
difficulty_score: number
|
||||||
|
cell_numbers: Record<string, number>
|
||||||
|
theme?: string
|
||||||
|
theme_entries?: string[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ClientClue {
|
||||||
|
number: number
|
||||||
|
direction: string
|
||||||
|
text: string
|
||||||
|
definition?: string
|
||||||
|
wordplay_type?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface GenerateResponse {
|
||||||
|
id: string
|
||||||
|
short_id: string
|
||||||
|
puzzle: ClientPuzzle
|
||||||
|
already_solved?: boolean
|
||||||
|
solve_time?: number
|
||||||
|
solve_hints?: number
|
||||||
|
cell_results?: string | null
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface ValidateResponse {
|
||||||
|
correct: boolean
|
||||||
|
cells: string[][]
|
||||||
|
rank?: number
|
||||||
|
percentile?: number
|
||||||
|
total_solvers?: number
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface HintCheckResponse {
|
||||||
|
is_correct: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface HintRevealResponse {
|
||||||
|
row: number
|
||||||
|
col: number
|
||||||
|
letter: string
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface HintWordResponse {
|
||||||
|
letters: { row: number; col: number; letter: string }[]
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface WordSpan {
|
||||||
|
number: number
|
||||||
|
direction: Direction
|
||||||
|
cells: [number, number][]
|
||||||
|
}
|
||||||
|
|
||||||
|
export type InputMode = 'keyboard' | 'stylus' | 'auto'
|
||||||
|
export type GameMode = 'standard' | 'speedrun' | 'blind' | 'marathon'
|
||||||
|
|
||||||
|
export interface StylusSettings {
|
||||||
|
strokeWidth: number
|
||||||
|
debounceMs: number
|
||||||
|
autoFillThreshold: number
|
||||||
|
ambiguityThreshold: number
|
||||||
|
enableOnnx: boolean
|
||||||
|
enableTesseract: boolean
|
||||||
|
enableStrokeMatcher: boolean
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface RecognitionResult {
|
||||||
|
candidates: { letter: string; confidence: number }[]
|
||||||
|
cell: { row: number; col: number }
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user