export { getCache, setCache } from './cache.js';
import { ReflectionProperty } from '@deepkit/type';
import { PackageJson } from '@stryke/types/package-json';
import { StormWorkspaceConfig } from '@storm-software/config/types';
import { DotenvParseOutput } from '@stryke/env/types';
import { Options, ResolvedDotenvOptions, Context, ResolvedDotenvTypes } from '../types/build.js';
import { LogFn } from '../types/config.js';
export { generateDeclarationVariables, generateDeclarations, generateGlobal, generateImports } from './dtsgen.js';
export { installPackage, installPackages } from './install-package.js';
export { loadConfig } from './load-config.js';
export { getParsedTypeScriptConfig, getTsconfigChanges, getTsconfigFilePath } from './tsconfig.js';
export { getUnbuildLoader } from './unbuild-loader.js';
export { createUnimport } from './unimport.js';
export { getFileHeader } from './utilities/file-header.js';
export { createLog } from './utilities/logger.js';
export { getMagicString, getString } from './utilities/magic-string.js';
export { generateSourceMap } from './utilities/source-map.js';
import '@storm-software/build-tools/types';
import '@stryke/env/get-env-paths';
import '@stryke/types/base';
import '@stryke/types/configuration';
import '@stryke/types/tsconfig';
import 'hookable';
import 'jiti';
import 'magic-string';
import 'typescript';
import 'unimport';
import '@storm-software/config-tools/types';
import '@storm-software/unbuild/types';

declare function generateDotenvMarkdown(packageJson: PackageJson, properties: ReflectionProperty[]): string;

declare const loadEnv: <TOptions extends Options = Options, TEnv extends DotenvParseOutput = DotenvParseOutput>(options: TOptions, dotenv: ResolvedDotenvOptions, cacheDir: string, configDir: string, packageJson: PackageJson, workspaceConfig: StormWorkspaceConfig) => Promise<TEnv>;

declare function reflectDotenvTypes<TOptions extends Options = Options>(log: LogFn, context: Context<TOptions>): Promise<ResolvedDotenvTypes>;

type TReturned<TEnv> = TEnv extends string ? string : DotenvParseOutput;
declare const removeEnvPrefix: <TEnv extends DotenvParseOutput | string>(env: TEnv) => TReturned<TEnv>;
declare const formatEnvField: (key: string) => string;

export { formatEnvField, generateDotenvMarkdown, loadEnv, reflectDotenvTypes, removeEnvPrefix };
