/** JSON with sorted object keys and the keys in `skip` left out, so equal * content gives equal text whatever the object came through. */ export declare function stableStringify(value: unknown, skip?: ReadonlySet): string; /** djb2 over a string, as 8 hex digits and the length in hex: short enough * to store per record, distinct enough to tell configurations apart. */ export declare function hashString(text: string): string; /** Two independent 32-bit hashes side by side (djb2 and sdbm) and the * length: for keys that must not confuse two long texts. */ export declare function hashStringWide(text: string): string; /** {@link hashString} of {@link stableStringify}. */ export declare function stableHash(value: unknown, skip?: ReadonlySet): string; /** * The text of one configuration object as it is now, for telling whether * it changed in place since it was resolved: plain `JSON.stringify` (the * keys of one object keep their order, so no sorting is needed), which * costs about 0.2 ms on a 55 KB book configuration. Undefined when the * object cannot be written as JSON (a cycle). */ export declare function configFingerprint(config: object): string | undefined; //# sourceMappingURL=stableHash.d.ts.map