import type { Plugin } from 'vite'; export interface Codec { stringify(value: any): string; parse(text: string): any; } export interface VitePluginJsonImportsOptions { /** * Use a custom codec. */ codec?: { /** * Import path for the custom codec to use in generated code. * * Must be a package name or use a path alias. * * Examples: * - '@my-org/my-codec' (npm package) * - '#utils/codec' (package subpath) * - 'my-codec' (npm package) * - '~/utils/codec' (if ~ is aliased in vite config) */ importPath: string; /** * Custom codec for validation and runtime parsing * The codec.parse() is used at build time to validate the JSON * The codec will be imported in the generated code for runtime parsing * @default JSON */ validate?: Codec; /** * The export (its name) to import. * * @default 'default' */ importExport?: string; }; filter?: { /** * Module types to process (the file extension without the dot). * @default ['json'] */ moduleTypes?: string[]; /** * Picomatch patterns to include * @default includes all files with configured extensions */ id?: { include?: string | string[]; /** * Picomatch patterns to exclude * @default excludes node_modules and files with \0 prefix */ exclude?: string | string[]; }; }; /** * Plugin name. Useful to customize if providing a custom codec e.g. `superjson`. * * @default 'json' */ name?: string; } export declare const create: (options?: VitePluginJsonImportsOptions) => Plugin; //# sourceMappingURL=vite-plugin-json.d.ts.map