/// <reference types="node" />
import { Parser } from './parsers';
export declare type Env<TSchemaData> = {
    [TKey in keyof TSchemaData]: TSchemaData[TKey];
};
export declare type Schema<TSchemaData> = {
    [TKey in keyof TSchemaData]: SchemaEntry<TSchemaData[TKey]>;
};
export declare type SchemaEntry<TType> = {
    parser: Parser<TType>;
    envVarName: string;
    description?: string;
} & SchemaEntryRequiredInfo<TType>;
export declare type SchemaEntryRequiredInfo<TType> = {
    required: true;
    defaultValue?: undefined;
} | {
    required: false;
    defaultValue: TType;
};
export declare function makeEnv<TSchemaData extends Record<string, any>>(schema: Schema<TSchemaData>, processEnv?: NodeJS.ProcessEnv): Env<TSchemaData>;
//# sourceMappingURL=environment.d.ts.map