import type { BlockMatrix } from '@/utils/block-matrix' export type DodecaminxFace = 'u' | 'l' | 'f' | 'r' | 'bl' | 'br' | 'd' | 'dl' | 'dr' | 'dbl' | 'dbr' | 'b' export type DodecaminxOpposite = T extends 'b' ? 'f' : T extends 'bl' ? 'dr' : T extends 'br' ? 'dl' : T extends 'd' ? 'u' : T extends 'dbl' ? 'r' : T extends 'dbr' ? 'l' : T extends 'dl' ? 'br' : T extends 'dr' ? 'bl' : T extends 'f' ? 'b' : T extends 'l' ? 'dbr' : T extends 'r' ? 'dbl' : T extends 'u' ? 'd' : never export interface DodecaminxTurn { depth: number rotation: number target: DodecaminxFace whole: boolean wide: boolean } export interface DodecaminxSolvedOptions { super?: boolean } export type DodecaminxState = Record>> export interface DodecaminxSticker { data: T face: DodecaminxFace index: number matrix: number } export interface DodecaminxOptions { data?: () => T rand?: () => number size?: number }