/** 牌ID (0-33, 赤ドラ: 34-36) */ export type TileId = number; /** 牌の色 */ export type TileSuit = "m" | "p" | "s" | "z"; /** * 赤ドラかどうかを返す */ export declare function isRedTile(id: TileId): boolean; /** * 赤ドラIDを対応する通常の5に変換する(通常牌はそのまま返す) */ export declare function toNormalTile(id: TileId): TileId; /** * 牌IDの色インデックスを返す (0=萬子, 1=筒子, 2=索子, 3=字牌) */ export declare function getSuitIndex(id: TileId): number; /** * 牌IDの色を返す */ export declare function getSuit(id: TileId): TileSuit; /** * 牌IDの数字を返す (1-9, 字牌は1-7, 赤ドラは5) */ export declare function getNum(id: TileId): number; /** * 牌IDが么九牌かどうかを返す */ export declare function isYaochu(id: TileId): boolean; /** * 牌IDを文字列に変換する (例: 0 → "1m", 27 → "東", 34 → "0m") */ export declare function tileToString(id: TileId): string; /** * ドラ表示牌から実際のドラ牌を返す * 数牌: 1→2→...→9→1 (循環) * 風牌: 東→南→西→北→東 (循環) * 三元牌: 白→發→中→白 (循環) */ export declare function nextTile(id: TileId): TileId; /** * 牌表記文字列をパースして牌ID配列を返す * 例: "123m456p" → [0, 1, 2, 12, 13, 14] * "東南白" → [27, 28, 32] */ export declare function parseTiles(notation: string): TileId[];