import { ReflectionProperty, ReflectionClass } from '@deepkit/type';
import { TypeDefinition } from '@stryke/types/configuration';
import { Options, Context } from '../../types/build.js';
import { LogFn } from '../../types/config.js';
import '@storm-software/config/types';
import '@storm-stack/types/shared/log';
import '@stryke/env/get-env-paths';
import '@stryke/env/types';
import '@stryke/types/base';
import '@stryke/types/package-json';
import '@stryke/types/tsconfig';
import 'hookable';
import 'jiti';
import 'magic-string';
import 'typescript';
import 'unimport';
import '@storm-software/config-tools/types';

declare function getDotenvDefaultTypeDefinition<TOptions extends Options = Options>(context: Context<TOptions>): TypeDefinition;
declare function getDotenvReflectionsPath<TOptions extends Options = Options>(context: Context<TOptions>, name: "variables" | "secrets"): string;
declare function getDotenvPath<TOptions extends Options = Options>(context: Context<TOptions>, name: "variables" | "secrets"): string;
declare function resolveDotenvProperties<TOptions extends Options = Options>(log: LogFn, context: Context<TOptions>, name: "variables" | "secrets"): Promise<ReflectionProperty[]>;
declare function resolveDotenvReflection<TOptions extends Options = Options>(context: Context<TOptions>, name: "variables" | "secrets"): Promise<ReflectionClass<any>>;

export { getDotenvDefaultTypeDefinition, getDotenvPath, getDotenvReflectionsPath, resolveDotenvProperties, resolveDotenvReflection };
