/** * 时钟 (clock) — the wall clock of a zone the user picks, drawn as a dial. * * WHAT IT IS FOR, next to the operating system's own clock: this one is a CARD in * the rail, so it answers "what time is it in the zone I am actually working * against" while the rest of the rail is being watched — the same reason 峰谷定价 * exists beside the pricing page. The zone list is deliberate and short: the * machine's own clock (`local`, the default — never a hard-coded Beijing, which * would be wrong on every machine outside China), Beijing (the zone this product's * own pricing/session cards reason in), and the four zones a cross-border working * day actually spans. * * WHAT THE WIDGET DECIDES, AND WHAT THE RENDERER DOES. This render is a PURE DATA * description: it picks the zone, the face, whether a second hand is drawn, and — * for the digital face — the date line's own words (the renderer holds no * dictionary). The DIAL ITSELF is the renderer's, including the live ticking: a * widget render cannot own an interval, and the rail only re-renders a card when * its data changes (30s at idle), so a clock wired to widget renders would stand * still. See `render/rich/clock-face.tsx` for the tick and the geometry. * * THE PINNED INSTANT (`sim.at`, preview only). The rail never passes `sim`, so a * live card always reads the real clock; every preview surface pins the instant, * which is what makes the offline render snapshot and the gallery screenshots * reproducible instead of "whatever time it was when the reviewer looked". */ import type { WidgetRenderMeta, WidgetRenderOut, WidgetStats } from '../../client/lib/contract/types'; declare function clockRender(stats: WidgetStats, meta?: WidgetRenderMeta): WidgetRenderOut; declare const _default: { id: string; name: () => string; desc: () => string; builtin: true; group: string; sizes: "2x2"[]; render: typeof clockRender; configSchema: ({ key: string; label: () => string; type: "mode"; default: string; options: [string, () => string][]; } | { key: string; label: () => string; type: "toggle"; default: true; options?: undefined; })[]; example: { sim: { at: number; tz: string; }; simSteps: ({ at: number; tz: string; face?: undefined; h24?: undefined; } | { at: number; tz: string; face: string; h24: boolean; })[]; }; }; export default _default;