/// /** * This is a placeholder for extending the type options. * You can augment this interface to enable stricter type checking. * @example * ```ts * interface RsbuildTypeOptions { * // This will enable strict type checking for `import.meta.env`. * strictImportMetaEnv: true; * } * ``` */ // biome-ignore lint/suspicious/noEmptyInterface: placeholder interface RsbuildTypeOptions {} /** * import.meta */ type ImportMetaEnvFallbackKey = 'strictImportMetaEnv' extends keyof RsbuildTypeOptions ? never : string; interface ImportMetaEnv extends Record { /** * The value of the `mode` configuration. * @example * if (import.meta.env.MODE === 'development') { * console.log('development mode'); * } */ MODE: 'development' | 'production' | 'none'; /** * If `mode` is `'development'`, the value is `true`; otherwise, it is `false`. * @example * if (import.meta.env.DEV) { * console.log('development mode'); * } */ DEV: boolean; /** * If `mode` is `'production'`, the value is `true`; otherwise, it is `false`. * @example * if (import.meta.env.PROD) { * console.log('production mode'); * } */ PROD: boolean; /** * The value of the `server.base` configuration. * @example * const image = new Image(); * // Equivalent to "/foo/favicon.ico" * image.src = `${import.meta.env.BASE_URL}/favicon.ico`; */ BASE_URL: string; /** * The URL prefix of static assets * - In development, it is equivalent to the value set by `dev.assetPrefix`. * - In production, it is equivalent to the value set by `output.assetPrefix`. * - Rsbuild will automatically remove the trailing slash from `assetPrefix` * to make string concatenation easier. * @example * const image = new Image(); * image.src = `${import.meta.env.ASSET_PREFIX}/favicon.ico`; */ ASSET_PREFIX: string; } interface ImportMeta { readonly env: ImportMetaEnv; } /** * Image assets */ declare module '*.bmp' { const src: string; export default src; } declare module '*.gif' { const src: string; export default src; } declare module '*.jpg' { const src: string; export default src; } declare module '*.jpeg' { const src: string; export default src; } declare module '*.pjpeg' { const src: string; export default src; } declare module '*.pjp' { const src: string; export default src; } declare module '*.png' { const src: string; export default src; } declare module '*.ico' { const src: string; export default src; } declare module '*.webp' { const src: string; export default src; } declare module '*.svg' { const src: string; export default src; } declare module '*.apng' { const src: string; export default src; } declare module '*.avif' { const src: string; export default src; } declare module '*.tif' { const src: string; export default src; } declare module '*.tiff' { const src: string; export default src; } declare module '*.jfif' { const src: string; export default src; } declare module '*.cur' { const src: string; export default src; } /** * Font assets */ declare module '*.woff' { const src: string; export default src; } declare module '*.woff2' { const src: string; export default src; } declare module '*.eot' { const src: string; export default src; } declare module '*.ttf' { const src: string; export default src; } declare module '*.otf' { const src: string; export default src; } declare module '*.ttc' { const src: string; export default src; } /** * Media assets */ declare module '*.mp4' { const src: string; export default src; } declare module '*.webm' { const src: string; export default src; } declare module '*.ogg' { const src: string; export default src; } declare module '*.mp3' { const src: string; export default src; } declare module '*.wav' { const src: string; export default src; } declare module '*.flac' { const src: string; export default src; } declare module '*.aac' { const src: string; export default src; } declare module '*.mov' { const src: string; export default src; } declare module '*.m4a' { const src: string; export default src; } declare module '*.opus' { const src: string; export default src; } /** * @requires [@rsbuild/plugin-yaml](https://npmjs.com/package/@rsbuild/plugin-yaml) */ declare module '*.yaml' { const content: Record; export default content; } /** * @requires [@rsbuild/plugin-yaml](https://npmjs.com/package/@rsbuild/plugin-yaml) */ declare module '*.yml' { const content: Record; export default content; } /** * @requires [@rsbuild/plugin-toml](https://npmjs.com/package/@rsbuild/plugin-toml) */ declare module '*.toml' { const content: Record; export default content; } /** * Imports the file as a URL string. * @note Only works for static assets by default. * @example * import logoUrl from './logo.png?url' * console.log(logoUrl) // 'http://example.com/logo.123456.png' */ declare module '*?url' { const content: string; export default content; } /** * Imports the file content as a base64 encoded string. * @note Only works for static assets and CSS files by default. * @example * import logo from './logo.svg?inline' * console.log(logo) // 'data:image/svg+xml;base64,...' * * import inlineCss from './style.css?inline'; * console.log(inlineCss); // Compiled CSS content */ declare module '*?inline' { const content: string; export default content; } /** * Imports the raw content of the file as a string. * @note Only works for static assets, CSS files, and scripts * (JS, TS, JSX, TSX) by default. * @example * import raw from './logo.svg?raw' * console.log(raw) // '...' * * import rawJs from './script.js?raw' * console.log(rawJs) // 'console.log("Hello world");' * * import rawCss from './style.css?raw' * console.log(rawCss) // 'body { background: red; }' */ declare module '*?raw' { const content: string; export default content; } /** * CSS Modules */ type CSSModuleClasses = { readonly [key: string]: string; }; declare module '*.module.css' { const classes: CSSModuleClasses; export default classes; } /** * @requires [@rsbuild/plugin-sass](https://npmjs.com/package/@rsbuild/plugin-sass) */ declare module '*.module.scss' { const classes: CSSModuleClasses; export default classes; } /** * @requires [@rsbuild/plugin-sass](https://npmjs.com/package/@rsbuild/plugin-sass) */ declare module '*.module.sass' { const classes: CSSModuleClasses; export default classes; } /** * @requires [@rsbuild/plugin-less](https://npmjs.com/package/@rsbuild/plugin-less) */ declare module '*.module.less' { const classes: CSSModuleClasses; export default classes; } /** * @requires [@rsbuild/plugin-stylus](https://npmjs.com/package/@rsbuild/plugin-stylus) */ declare module '*.module.styl' { const classes: CSSModuleClasses; export default classes; } /** * @requires [@rsbuild/plugin-stylus](https://npmjs.com/package/@rsbuild/plugin-stylus) */ declare module '*.module.stylus' { const classes: CSSModuleClasses; export default classes; } /** * CSS */ declare module '*.css' {} /** * @requires [@rsbuild/plugin-sass](https://npmjs.com/package/@rsbuild/plugin-sass) */ declare module '*.scss' {} /** * @requires [@rsbuild/plugin-sass](https://npmjs.com/package/@rsbuild/plugin-sass) */ declare module '*.sass' {} /** * @requires [@rsbuild/plugin-less](https://npmjs.com/package/@rsbuild/plugin-less) */ declare module '*.less' {} /** * @requires [@rsbuild/plugin-stylus](https://npmjs.com/package/@rsbuild/plugin-stylus) */ declare module '*.styl' {} /** * @requires [@rsbuild/plugin-stylus](https://npmjs.com/package/@rsbuild/plugin-stylus) */ declare module '*.stylus' {}