import type { CastReadingResponse, GetDailyHexagramResponse, GetHexagramResponse, GetRandomHexagramResponse, LookupHexagramResponse } from '../types/index.js'; import { RoxyDataElement } from '../utils/base-element.js'; type HexagramData = GetHexagramResponse | GetRandomHexagramResponse | LookupHexagramResponse | GetDailyHexagramResponse | CastReadingResponse; /** * I Ching hexagram card. Renders /iching/hexagrams/{number}, /iching/cast, * /iching/daily, /iching/daily/cast. * * @remarks * **There is deliberately no `mode` input.** Which of the four shapes arrived is * shape-detected from the payload in {@link RoxyHexagram.resolveHexagram}, which * is the rule for every multi-endpoint component here: an attribute and a * response can disagree, and only one of them is the reading. A `mode` property * shipped anyway, reflected and typed into both framework wrappers, and nothing * ever read it. */ export declare class RoxyHexagram extends RoxyDataElement { static styles: import("lit").CSSResult[]; private resolveHexagram; protected renderData(): unknown; /** * The line readings. Each line carries its oracle statement and, since the 2026-07 API rewrite, a written meaning. Both are rendered: a bare "Changing lines: 3" leaves a reader no way to know what line 3 is telling them. * * @remarks * When lines are moving, only those lines are shown: a cast turns on the moving lines, and listing the other five buries the answer. With no lines moving (a lookup, a random draw, the daily hexagram) all six are shown, because there the hexagram is being read as a reference rather than as an answer to a question. */ private renderLines; /** * Lines for a static hexagram (lookup/random/daily, which carry no cast `lines` array): read the `binary` pattern. 6 digits BOTTOM to top, so index 0 is line 1, the bottom line, exactly like the cast `lines` array. 1 = yang (solid, 7), 0 = yin (broken, 8). Falls back to all-yang only if `binary` is malformed. The Unicode `symbol` block (U+4DC0) is in King Wen order, NOT line order, so it must never be used to derive the lines. * * @remarks * This used to `.reverse()`, because the API served `binary` top-to-bottom while documenting it bottom-to-top, and reversing was the only way to render the figure the right way up. The API fixed the data in 2026-07 (the same inversion was making `/cast` return the vertically MIRRORED hexagram for 56 of the 64 figures), so `binary` and `lines` now point the same way and the reverse would flip every asymmetric hexagram upside down. Do not put it back. */ private derivedLines; } declare global { interface HTMLElementTagNameMap { 'roxy-hexagram': RoxyHexagram; } } export {}; //# sourceMappingURL=hexagram.d.ts.map