/** low-level SVG string helpers: escaping, id scoping, numeric formatting, ticks, and the time/status meta row. */ import type { Palette } from "./theme.js"; import type { TickStatus } from "./types.js"; /** escape xml-significant characters — safe inside both text nodes and quoted attributes. */ export declare const esc: (s: string) => string; /** deterministic 32-bit hash — used to seed avatar colours and media placeholder gradients. */ export declare const hash: (s: string) => number; export declare const round: (n: number) => number; export declare const clamp: (n: number, lo: number, hi: number) => number; export declare const dur: (s?: number) => string; /** * one `IdScope` per `renderChat` call — every ``/gradient id it hands out is unique * across calls, so two SVGs inlined on the same page (e.g. the docs playground's `{@html}`) * never resolve `url(#c0)` into each other's defs. pass `idPrefix` for deterministic ids in tests. */ export declare class IdScope { private n; private readonly prefix; constructor(prefix?: string); next(label: string): string; } /** rounded-rect path with an independent radius per corner (tl, tr, br, bl). */ export declare function rr(x: number, y: number, w: number, h: number, tl: number, tr: number, br: number, bl: number): string; export declare function ticks(x: number, y: number, status: TickStatus, color: string): string; /** time + ticks (+ edited marker) at a right edge; `scrim` draws a dark pill (over media). */ export declare function meta(rightX: number, bottomY: number, time: string, status: TickStatus | undefined, out: boolean, p: Palette, scrim: boolean, edited?: boolean): string; /** measured width of a meta (time/ticks) label, for reserving inline space next to text. */ export declare const metaWidth: (time: string, out: boolean, hasStatus: boolean, edited?: boolean) => number; //# sourceMappingURL=svg.d.ts.map