/** * Profile registry — the single source of truth for known browser fingerprints. * * Backed by a `Map`, which preserves insertion order, so {@link listProfiles} * returns ids in a stable, deterministic sequence (built-ins first, then any * runtime-registered profiles). Built-in profiles are indexed once at module * evaluation; later {@link registerProfile} calls append or overwrite by id. */ import type { BrowserProfile, ProfileId } from "./types.js"; /** * Look up a profile by its branded id. * * Built-in profiles (chrome, firefox, safari, edge) are always available. * Custom profiles registered via {@link registerProfile} are returned here too. * * @param id - The {@link ProfileId} to look up. * @returns The matching {@link BrowserProfile}. * @throws {UnknownProfileError} If no profile with the given id is registered. * * @example * ```ts * const chrome = getProfile("chrome-140" as ProfileId); * console.log(chrome.tls.cipherSuites); * ``` * * @since 0.1.0 */ export declare function getProfile(id: ProfileId): BrowserProfile; /** * List every registered profile id, in insertion order. * * Built-in profiles come first (chrome, firefox, safari, edge in that order), * followed by any custom profiles registered via {@link registerProfile}. * The order is stable because the registry is backed by a `Map`. * * @returns A readonly array of {@link ProfileId} values. * * @example * ```ts * for (const id of listProfiles()) { * console.log(id); // "chrome-140", "firefox-128", ... * } * ``` * * @since 0.1.0 */ export declare function listProfiles(): ReadonlyArray; /** * Register a custom profile (e.g. a private build or a future browser version). * * Adds the profile to the registry, or overwrites any existing profile with the * same id. After registration the profile is returned from {@link getProfile} * and listed by {@link listProfiles}. * * @param profile - The {@link BrowserProfile} to register. * * @example * ```ts * registerProfile({ * id: "chrome-141" as ProfileId, * name: "chrome", * version: "141.0.0.0", * tls: { ... }, * http2: { ... }, * http1: { ... }, * }); * ``` * * @since 0.1.0 */ export declare function registerProfile(profile: BrowserProfile): void; //# sourceMappingURL=registry.d.ts.map