/** * In-memory, session-only secret store. * * Session secrets are set by the agent without approval and are NEVER * persisted to disk / Keychain / chrome.storage — they live only for the * lifetime of the process (node-server) or service-worker (extension) that * owns the instance, and vanish on session end. * * The store is wired into {@link SecretsPipeline} (via `sessionStore`) so the * fetch proxy can unmask session secrets exactly like persisted ones, while * the `secret` shell command writes to it through the per-float transport. */ export interface SessionSecretRecord { name: string; value: string; domains: string[]; } export declare class SessionSecretStore { private readonly entries; /** Create or replace a session secret. Domains default to empty. */ set(name: string, value: string, domains?: string[]): void; /** Real value for `name`, or undefined when absent. */ get(name: string): string | undefined; /** Full record (value + domains) for `name`, or undefined when absent. */ getRecord(name: string): SessionSecretRecord | undefined; has(name: string): boolean; /** Replace the allowed domains of an existing secret. No-op when absent. */ setDomains(name: string, domains: string[]): boolean; delete(name: string): boolean; /** All records including values (for pipeline reload). */ listAll(): SessionSecretRecord[]; /** Names + domains only (no values) for listing/management surfaces. */ list(): Array<{ name: string; domains: string[]; }>; size(): number; } /** * Build a partial, redacted preview of a secret value: the first and last * `edge` characters with the middle elided. Always elides at least one * character so the full value is never reconstructable from the preview. * * previewSecret('sk-proj-ABCDEFGH1234') → 'sk-p…1234' * previewSecret('short') → 's…t' */ export declare function previewSecret(value: string, edge?: number): string; //# sourceMappingURL=session-secret-store.d.ts.map