import type { TEnv, TEnvData, TEnvSpecs } from './types'; /** Validates grouped server, client, and shared env specs with a client-side server access guard. */ export declare function createEnv = TEmptyEnvSpecs, GClientSpecs extends Record = TEmptyEnvSpecs, GSharedSpecs extends Record = TEmptyEnvSpecs>(options: TCreateEnvOptions): TCreateEnvData; export interface TCreateEnvOptions = TEmptyEnvSpecs, GClientSpecs extends Record = TEmptyEnvSpecs, GSharedSpecs extends Record = TEmptyEnvSpecs> { /** Environment source, such as `process.env`, `import.meta.env`, or a test object. */ env: TEnv; /** Server-only specs. Client access throws unless `onInvalidAccess` overrides it. */ server?: TEnvSpecs; /** Client-exposed specs validated on both server and client. */ client?: TEnvSpecs; /** Runtime-neutral specs shared by server and client code. */ shared?: TEnvSpecs; /** Runtime side. Defaults to a global runtime check. */ isServer?: boolean; /** Handles client-side reads of server-only keys. Must not return. */ onInvalidAccess?: (key: string) => never; } export type TCreateEnvData = TEmptyEnvSpecs, GClientSpecs extends Record = TEmptyEnvSpecs, GSharedSpecs extends Record = TEmptyEnvSpecs> = Readonly & TEnvData & TEnvData>>; type TEmptyEnvSpecs = Record; type TSimplify = { [Key in keyof GValue]: GValue[Key]; }; export {}; //# sourceMappingURL=create-env.d.ts.map