// Local type declarations for scripts/ — avoids depending on installed packages // for type checking in build scripts. // ── esbuild (minimal surface used by build-bundle.ts) ── declare module 'esbuild' { export interface Plugin { name: string setup(build: PluginBuild): void } export interface PluginBuild { onResolve( options: { filter: RegExp }, callback: (args: OnResolveArgs) => OnResolveResult | undefined | null, ): void } export interface OnResolveArgs { path: string importer: string namespace: string resolveDir: string kind: string pluginData: unknown } export interface OnResolveResult { path?: string external?: boolean namespace?: string pluginData?: unknown } export interface BuildOptions { entryPoints?: string[] bundle?: boolean platform?: string target?: string[] format?: string outdir?: string outExtension?: Record splitting?: boolean plugins?: Plugin[] tsconfig?: string alias?: Record external?: string[] jsx?: string sourcemap?: boolean | string minify?: boolean treeShaking?: boolean define?: Record banner?: Record resolveExtensions?: string[] logLevel?: string metafile?: boolean [key: string]: unknown } export interface Metafile { inputs: Record outputs: Record } export interface BuildResult { errors: { text: string }[] warnings: { text: string }[] metafile?: Metafile } export interface BuildContext { watch(): Promise serve(options?: unknown): Promise rebuild(): Promise dispose(): Promise } export function build(options: BuildOptions): Promise export function context(options: BuildOptions): Promise export function analyzeMetafile(metafile: Metafile, options?: { verbose?: boolean }): Promise } // ── Bun's ImportMeta extensions ── interface ImportMeta { dir: string dirname: string }