export declare function redact(text: string): string; /** * A value shape, not a name: at least 8 characters, not a type word or placeholder, not a reference to somewhere the * value lives (`$VAR`, `${...}`, `process.env.X`, ``, `[redacted]`, `***`), not an all-caps identifier, and * with the mixture of character classes that keys have (digits with letters, or both cases with punctuation). */ export declare function looksLikeSecretValue(value: string): boolean; /** * True for a credential-shaped value that is a stand-in rather than a credential: a name that says so * (`sk-synthetic-`, `devtok_`), a sequence or repeat used as an example body (`sk-live-abcdefghij123456`, * `0123456789abcdef`), or a documented dummy (`AKIAIOSFODNN7EXAMPLE`). Test fixtures and docs are full of these, * and announcing them costs the user a steer per read. Judged from the value alone, in the offline pattern layer. */ export declare function syntheticish(value: string): boolean; /** Split credentials into the ones worth announcing and the stand-ins that are only traced. */ export declare function partitionSecrets(secrets: readonly string[]): { real: string[]; synthetic: string[]; }; /** The credential-shaped values in `text`, deduplicated. Empty when the text only talks about credentials. */ export declare function findSecrets(text: string): string[]; /** A short, stable id for a set of secrets; the values themselves never leave `findSecrets`. */ export declare function secretFingerprint(secrets: readonly string[]): string; /** One fingerprint per distinct value, so repeats are detectable even when the surrounding set changes. */ export declare function secretIds(secrets: readonly string[]): string[];