/** SDK-owned platform module. This implementation is maintained in goodvibes-sdk. */ /** * The closed-tier strings a loaded profile wants kept out of anything written * out, in two classes. * * The split exists because §10 (third-party personal data) and the * distinctiveness floor genuinely conflict, and the conflict was reproduced: a * `People` line reading `- Bob Lee` is seven characters, fell under the floor, * and left a session export in the clear. The floor's reasoning is still right * for ordinary values, `currency: USD` must not blank the word USD everywhere, * so the resolution is to key third-party data on its SECTION rather than on * the shape of its value. */ export interface ProfileRedactionValues { /** Ordinary closed-tier values. Subject to the distinctiveness floor. */ readonly guarded: readonly string[]; /** * Third-party personal data (`People`). Redacted regardless of length or * shape, because §10 is absolute. Matched on word boundaries so a two-letter * name cannot blank the middle of unrelated words. */ readonly absolute: readonly string[]; } /** Supplies the closed-tier values present in the loaded profile, if any. */ export type ProfileRedactionValueReader = () => ProfileRedactionValues; /** * Register (or clear, with `null`) the reader that supplies the loaded * profile's closed-tier values. * * A registered reader rather than an import: `redaction.ts` must stay usable * where no profile exists, a browser bundle, a surface with no daemon, a test * that never built a store. With nothing registered this module behaves exactly * as it did before the profile existed. */ export declare function registerProfileRedactionValues(reader: ProfileRedactionValueReader | null): void; /** * Credentials AND home-path anonymisation. * * For text that is LEAVING the machine, session exports, telemetry. Both * halves are wanted there: the reader is not the owner, so the owner's username * is not theirs to have. */ export declare function redactSensitiveData(text: string): string; /** * Credentials only, leaving paths intact. * * For text that STAYS on the owner's machine, the at-rest journal, whose file * lives inside the very directory the identity patterns would rewrite. There * is no one to anonymise them from in their own files, and `/home/[REDACTED]/…` * makes a journal entry unusable for the debugging it exists for. */ export declare function redactCredentialsOnly(text: string): string; export declare function redactStructuredData(value: unknown): unknown; export declare function isSensitiveTelemetryKey(key: string): boolean; //# sourceMappingURL=redaction.d.ts.map