import type { LibraryOptions, UserConfig } from 'vite'; /** Options for {@link createNodeLibraryBuildConfig}. */ export interface NodeLibraryBuildConfigOptions { readonly entry: LibraryOptions['entry']; } /** Options for {@link createBrowserLibraryBuildConfig}. */ export interface BrowserLibraryBuildConfigOptions { readonly entry: LibraryOptions['entry']; } /** * Vite build config for a Node.js library entry point: ESM-only, targets * `node22`, externalizes every bare specifier, and preserves one output * file per source module for `package.json#exports` deep imports. * * @example * ```ts * import { mergeConfig } from 'vite'; * import { createNodeLibraryBuildConfig } from '@coryrylan/tools/vite'; * * export default mergeConfig( * createNodeLibraryBuildConfig({ entry: { index: 'src/index.ts' } }), * { plugins: [] }, * ); * ``` */ export declare function createNodeLibraryBuildConfig(options: NodeLibraryBuildConfigOptions): UserConfig; /** * Vite build config for a browser library entry point. Same shape as * {@link createNodeLibraryBuildConfig} except it targets `esnext`, since the * consuming browser (or downstream bundler) declares its own baseline. */ export declare function createBrowserLibraryBuildConfig(options: BrowserLibraryBuildConfigOptions): UserConfig;