import type { Attribs, Vec2Like } from "./api.js"; import type { Maybe } from "@thi.ng/api"; export declare let PRECISION: number; /** * Sets the number of fractional digits used for formatting various floating * point values in the serialized SVG. The current value can be read via * {@link PRECISION}. * * @param n */ export declare const setPrecision: (n: number) => number; /** @internal */ export declare const ff: (x: number) => string; /** @internal */ export declare const fpoint: (p: Vec2Like) => string; /** @internal */ export declare const fpoints: (pts: Vec2Like[], sep?: string) => string; /** * Takes an attributes object and converts any `fill`, `stroke` or * transformation attributes, i.e. `transform`, `rotate`, `scale`, `translate`. * * @remarks * If the element has a `transform` attrib, conversion of the other attribs will * be skipped, else the values are assumed to be either strings or: * * - `transform`: 6-element numeric array (mat23) * - `translate`: 2-element array * - `rotate`: number (angle in radians) * - `scale`: number (uniform scale) or 2-elem array * * If no `transform` is given, the resulting transformation order will always be * TRS. Any string values given will be used as-is and therefore need to be * complete, e.g. `{ rotate: "rotate(60)" }` * * For color related attribs (`fill`, `stroke`), if given value is array-like, a * number or an * [`IColor`](https://docs.thi.ng/umbrella/color/interfaces/IColor.html) * instance, it will be converted into a CSS color string using * [`css`](https://docs.thi.ng/umbrella/color/functions/css.html). * * String color attribs prefixed with `$` are replaced with `url(#...)` refs * (used for referencing gradients). * * Additional attribute names given (via rest args) will be formatted as numeric * values (using configured precision, see {@link setPrecision}). Formatting is * done via {@link __numericAttribs}. * * Returns updated attribs or `undefined` if `attribs` itself is null-ish. * * @param attribs - attributes object * @param numericIDs - numeric attribute names * * @internal */ export declare const fattribs: (attribs: Maybe, ...numericIDs: string[]) => Attribs; /** * Attempts to convert a single color attrib value. If `col` is prefixed with * `$`, the value will be converted into a `url(#...)` reference. If not a * string already, it will be converted into a CSS color string using * [`css`](https://docs.thi.ng/umbrella/color/functions/css.html) * * {@link fattribs} * * @param col - color value * * @internal */ export declare const fcolor: (col: any) => string; /** @internal */ export declare const withoutKeys: (src: Record, keys: Set) => any; //# sourceMappingURL=format.d.ts.map