import { HookUtility } from '../core/define-utility.js'; import 'astro'; import '../core/types.js'; import '../internal/types.js'; type VirtualImport = { id: string; content: string; context?: "server" | "client" | undefined; }; type Imports = Record | Array; /** * Creates a Vite virtual module and updates the Astro config. * Virtual imports are useful for passing things like config options, or data computed within the integration. * * @param {import("astro").HookParameters<"astro:config:setup">} params * @param {object} options * @param {string} options.name * @param {Imports} options.imports * * @see https://astro-integration-kit.netlify.app/utilities/add-virtual-imports/ * * @example * ```ts * // my-integration/index.ts * import { addVirtualImports } from "astro-integration-kit"; * * addVirtualImports(params, { * name: 'my-integration', * imports: { * 'virtual:my-integration/config': `export default ${ JSON.stringify({foo: "bar"}) }`, * }, * }); * ``` * * This is then readable anywhere else in your integration: * * ```ts * // myIntegration/src/component/layout.astro * import config from "virtual:my-integration/config"; * * console.log(config.foo) // "bar" * ``` */ declare const addVirtualImports: HookUtility<"astro:config:setup", [{ name: string; imports: Imports; __enableCorePowerDoNotUseOrYouWillBeFired?: boolean; }], void>; export { addVirtualImports };