interface ServerTiming { /** The name attribute is required, and gives a short name to the server-specified metric. */ name: string; /** (Optional) The duration attribute is a double (like `0.0`) that contains the server-specified metric duration. Usually milliseconds. */ duration?: number; /** (Optional) The description describes the server-specified metric. */ description?: string; } declare type ServerTimings = Array; /** * Parse a given [`Server-Timing`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Server-Timing) header string value into corresponding timing components. * * @example * ``` * parse('missedCache') * // [{ name: "missedCache" }] * parse('cpu;dur=2.4') * // [{ name: "cpu", duration: 2.4 }] * parse('cache;desc="Cache Read";dur=23.2') * // [{ name: "cache", description: "Cache Read", duration: 23.2 }] * parse('db;dur=53, app;dur=47.2') * // [{ name: "db", duration: 53 }, { name: "app", duration: 47.2 }] * ``` * @param timingHeader Header value (as string) to parse. * @returns {ServerTimings} Timing components as an object. */ declare const parse: (timingHeader: string) => ServerTimings; /** * Stringify a given {@link ServerTimings} object into a [`Server-Timing`](https://www.w3.org/TR/server-timing/#the-server-timing-header-field) header string value. * * @example * ``` * stringify([{ name: "missedCache" }]) * // missedCache * stringify([{ name: "cpu", duration: 2.4 }]) * // cpu;dur=2.4 * stringify([{ name: "cache", description: "Cache Read", duration: 23.2 }]) * // cache;desc="Cache Read";dur=23.2 * stringify([{ name: "db", duration: 53 }, { name: "app", duration: 47.2 }]) * // db;dur=53, app;dur=47.2 * ``` * @param {ServerTimings} timings Timings object to stringify. * @returns Server-Timings header value as string. */ declare const stringify: (timings: ServerTimings) => string; export { ServerTimings, parse, stringify };