import type { ProjectEnvSnapshot } from "./project-env-contract.js"; /** Returns the active project environment snapshot, or undefined outside one. */ export type ProjectEnvSnapshotGetter = () => ProjectEnvSnapshot | undefined; /** * Read a key as the scoped view presents it: snapshot entry, then any write * recorded against that snapshot. * * Exported so the accessors (`getEnv()`, `env()`) resolve keys through exactly * the same rule as the raw object, instead of reading the immutable snapshot * and missing writes the object has already accepted. */ export declare function readProjectScopedEnv(snapshot: ProjectEnvSnapshot, key: string): string | undefined; /** The scoped view as a plain record, for the bulk accessor. */ export declare function projectScopedEnvRecord(snapshot: ProjectEnvSnapshot): Record; /** * Install the project-scoped view over `process.env`. * * Idempotent: the first installation owns the view for the process lifetime, so * the record captured as the host view is always the pre-installation one. * Outside a project scope every operation passes straight through to it. * * The view is installed as a non-configurable accessor, so code running later * cannot detach it by assigning to or redefining `process.env` — an assignment * is applied through the view (see `applyEnvReplacement`) rather than replacing * it. Without that, one assignment would drop the view for every scope in the * process, not only the one that made it. */ export declare function installProjectScopedProcessEnv(getSnapshot: ProjectEnvSnapshotGetter): void; //# sourceMappingURL=scoped-process-env.d.ts.map