import { type ViteUserConfig } from 'vitest/config'; import type { Config as StencilConfig } from '@stencil/core'; /** * Define a Vitest configuration for Stencil component testing * * Accepts standard Vitest config with optional Stencil enhancements. * Automatically applies Stencil-specific defaults: * - JSX configuration (h, Fragment) * - Resolve aliases from Stencil config (@, @components, @utils) * - Coverage configuration based on srcDir * - Exclude patterns for build outputs * - Auto-injects jsdom-setup for environment: 'jsdom' * - Auto-injects happy-dom-setup for environment: 'happy-dom' * - Custom 'stencil' environment handles its own setup * * @example * ```ts * import { defineVitestConfig } from '@stencil/vitest/config'; * * export default defineVitestConfig({ * test: { * projects: [ * { * test: { * name: 'stencil', * include: ['**\/*.spec.tsx'], * environment: 'stencil', * setupFiles: ['./vitest-setup.ts'], * // environmentOptions: { * // stencil: { * // domEnvironment: 'happy-dom' // 'jsdom' | 'mock-doc' (default), Make sure to install relevant packages * // }, * // }, * }, * }, * { * test: { * name: 'jsdom', * include: ['**\/*.jsdom.spec.tsx'], * environment: 'jsdom', * setupFiles: ['./vitest-setup.ts'], * }, * }, * { * test: { * name: 'happy-dom', * include: ['**\/*.happy.spec.tsx'], * environment: 'happy-dom', * setupFiles: ['./vitest-setup.ts'], * }, * }, * { * test: { * name: 'browser', * include: ['**\/*.e2e.tsx'], * browser: { * enabled: true, * provider: 'playwright', * instances: [ * { browser: 'chromium' } * ], * }, * }, * }, * ], * }, * }); * ``` */ export declare function defineVitestConfig(config?: ViteUserConfig & { stencilConfig?: string | StencilConfig; }): Promise; //# sourceMappingURL=config.d.ts.map