| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921 | /// <reference types="node" />import type { Agent } from 'http';import type { BuildOptions as BuildOptions_2 } from 'esbuild';import type { ClientRequest } from 'http';import type { ClientRequestArgs } from 'http';import type { CustomPluginOptions } from 'rollup';import type { Duplex } from 'stream';import type { DuplexOptions } from 'stream';import { TransformOptions as EsbuildTransformOptions } from 'esbuild';import { EventEmitter } from 'events';import * as events from 'events';import type { ExistingRawSourceMap } from 'rollup';import type * as fs from 'fs';import type { GetManualChunk } from 'rollup';import * as http from 'http';import type { IncomingMessage } from 'http';import type { InputOptions } from 'rollup';import type { LoadResult } from 'rollup';import type { ModuleFormat } from 'rollup';import type { ModuleInfo } from 'rollup';import type * as net from 'net';import type { OutgoingHttpHeaders } from 'http';import type { OutputBundle } from 'rollup';import type { OutputChunk } from 'rollup';import type { PartialResolvedId } from 'rollup';import type { Plugin as Plugin_2 } from 'rollup';import type { PluginContext } from 'rollup';import type { PluginHooks } from 'rollup';import type * as PostCSS from 'postcss';import type { ResolveIdResult } from 'rollup';import type { RollupError } from 'rollup';import type { RollupOptions } from 'rollup';import type { RollupOutput } from 'rollup';import type { RollupWatcher } from 'rollup';import type { SecureContextOptions } from 'tls';import type { Server } from 'http';import type { Server as Server_2 } from 'https';import type { Server as Server_3 } from 'net';import type { ServerOptions as ServerOptions_2 } from 'https';import type { ServerResponse } from 'http';import type { SourceDescription } from 'rollup';import type { SourceMap } from 'rollup';import type * as stream from 'stream';import type { TransformPluginContext } from 'rollup';import type { TransformResult as TransformResult_2 } from 'esbuild';import type { TransformResult as TransformResult_3 } from 'rollup';import type * as url from 'url';import type { URL as URL_2 } from 'url';import type { WatcherOptions } from 'rollup';import type { ZlibOptions } from 'zlib';export declare interface Alias {    find: string | RegExp    replacement: string    /**     * Instructs the plugin to use an alternative resolving algorithm,     * rather than the Rollup's resolver.     * @default null     */    customResolver?: ResolverFunction | ResolverObject | null}/** * Specifies an `Object`, or an `Array` of `Object`, * which defines aliases used to replace values in `import` or `require` statements. * With either format, the order of the entries is important, * in that the first defined rules are applied first. * * This is passed to \@rollup/plugin-alias as the "entries" field * https://github.com/rollup/plugins/tree/master/packages/alias#entries */export declare type AliasOptions = readonly Alias[] | { [find: string]: string }export declare type AnymatchFn = (testString: string) => booleanexport declare type AnymatchPattern = string | RegExp | AnymatchFnexport declare interface AwaitWriteFinishOptions {    /**     * Amount of time in milliseconds for a file size to remain constant before emitting its event.     */    stabilityThreshold?: number    /**     * File size polling interval.     */    pollInterval?: number}/** * Bundles the app for production. * Returns a Promise containing the build result. */export declare function build(inlineConfig?: InlineConfig): Promise<RollupOutput | RollupOutput[] | RollupWatcher>;export declare interface BuildOptions {    /**     * Base public path when served in production.     * @deprecated `base` is now a root-level config option.     */    base?: string;    /**     * Compatibility transform target. The transform is performed with esbuild     * and the lowest supported target is es2015/es6. Note this only handles     * syntax transformation and does not cover polyfills (except for dynamic     * import)     *     * Default: 'modules' - Similar to `@babel/preset-env`'s targets.esmodules,     * transpile targeting browsers that natively support dynamic es module imports.     * https://caniuse.com/es6-module-dynamic-import     *     * Another special value is 'esnext' - which only performs minimal transpiling     * (for minification compat) and assumes native dynamic imports support.     *     * For custom targets, see https://esbuild.github.io/api/#target and     * https://esbuild.github.io/content-types/#javascript for more details.     */    target?: 'modules' | EsbuildTransformOptions['target'] | false;    /**     * whether to inject module preload polyfill.     * Note: does not apply to library mode.     * @default true     */    polyfillModulePreload?: boolean;    /**     * whether to inject dynamic import polyfill.     * Note: does not apply to library mode.     * @default false     * @deprecated use plugin-legacy for browsers that don't support dynamic import     */    polyfillDynamicImport?: boolean;    /**     * Directory relative from `root` where build output will be placed. If the     * directory exists, it will be removed before the build.     * @default 'dist'     */    outDir?: string;    /**     * Directory relative from `outDir` where the built js/css/image assets will     * be placed.     * @default 'assets'     */    assetsDir?: string;    /**     * Static asset files smaller than this number (in bytes) will be inlined as     * base64 strings. Default limit is `4096` (4kb). Set to `0` to disable.     * @default 4096     */    assetsInlineLimit?: number;    /**     * Whether to code-split CSS. When enabled, CSS in async chunks will be     * inlined as strings in the chunk and inserted via dynamically created     * style tags when the chunk is loaded.     * @default true     */    cssCodeSplit?: boolean;    /**     * An optional separate target for CSS minification.     * As esbuild only supports configuring targets to mainstream     * browsers, users may need this option when they are targeting     * a niche browser that comes with most modern JavaScript features     * but has poor CSS support, e.g. Android WeChat WebView, which     * doesn't support the #RGBA syntax.     */    cssTarget?: EsbuildTransformOptions['target'] | false;    /**     * If `true`, a separate sourcemap file will be created. If 'inline', the     * sourcemap will be appended to the resulting output file as data URI.     * 'hidden' works like `true` except that the corresponding sourcemap     * comments in the bundled files are suppressed.     * @default false     */    sourcemap?: boolean | 'inline' | 'hidden';    /**     * Set to `false` to disable minification, or specify the minifier to use.     * Available options are 'terser' or 'esbuild'.     * @default 'esbuild'     */    minify?: boolean | 'terser' | 'esbuild';    /**     * Options for terser     * https://terser.org/docs/api-reference#minify-options     */    terserOptions?: Terser.MinifyOptions;    /**     * @deprecated Vite now uses esbuild for CSS minification.     */    cleanCssOptions?: any;    /**     * Will be merged with internal rollup options.     * https://rollupjs.org/guide/en/#big-list-of-options     */    rollupOptions?: RollupOptions;    /**     * Options to pass on to `@rollup/plugin-commonjs`     */    commonjsOptions?: RollupCommonJSOptions;    /**     * Options to pass on to `@rollup/plugin-dynamic-import-vars`     */    dynamicImportVarsOptions?: RollupDynamicImportVarsOptions;    /**     * Whether to write bundle to disk     * @default true     */    write?: boolean;    /**     * Empty outDir on write.     * @default true when outDir is a sub directory of project root     */    emptyOutDir?: boolean | null;    /**     * Whether to emit a manifest.json under assets dir to map hash-less filenames     * to their hashed versions. Useful when you want to generate your own HTML     * instead of using the one generated by Vite.     *     * Example:     *     * ```json     * {     *   "main.js": {     *     "file": "main.68fe3fad.js",     *     "css": "main.e6b63442.css",     *     "imports": [...],     *     "dynamicImports": [...]     *   }     * }     * ```     * @default false     */    manifest?: boolean | string;    /**     * Build in library mode. The value should be the global name of the lib in     * UMD mode. This will produce esm + cjs + umd bundle formats with default     * configurations that are suitable for distributing libraries.     */    lib?: LibraryOptions | false;    /**     * Produce SSR oriented build. Note this requires specifying SSR entry via     * `rollupOptions.input`.     */    ssr?: boolean | string;    /**     * Generate SSR manifest for determining style links and asset preload     * directives in production.     */    ssrManifest?: boolean | string;    /**     * Set to false to disable reporting compressed chunk sizes.     * Can slightly improve build speed.     */    reportCompressedSize?: boolean;    /**     * Set to false to disable brotli compressed size reporting for build.     * Can slightly improve build speed.     * @deprecated use `build.reportCompressedSize` instead.     */    brotliSize?: boolean;    /**     * Adjust chunk size warning limit (in kbs).     * @default 500     */    chunkSizeWarningLimit?: number;    /**     * Rollup watch options     * https://rollupjs.org/guide/en/#watchoptions     */    watch?: WatcherOptions | null;}export declare interface ChunkMetadata {    importedAssets: Set<string>;    importedCss: Set<string>;}export declare interface CommonServerOptions {    /**     * Specify server port. Note if the port is already being used, Vite will     * automatically try the next available port so this may not be the actual     * port the server ends up listening on.     */    port?: number;    /**     * If enabled, vite will exit if specified port is already in use     */    strictPort?: boolean;    /**     * Specify which IP addresses the server should listen on.     * Set to 0.0.0.0 to listen on all addresses, including LAN and public addresses.     */    host?: string | boolean;    /**     * Enable TLS + HTTP/2.     * Note: this downgrades to TLS only when the proxy option is also used.     */    https?: boolean | ServerOptions_2;    /**     * Open browser window on startup     */    open?: boolean | string;    /**     * Configure custom proxy rules for the dev server. Expects an object     * of `{ key: options }` pairs.     * Uses [`http-proxy`](https://github.com/http-party/node-http-proxy).     * Full options [here](https://github.com/http-party/node-http-proxy#options).     *     * Example `vite.config.js`:     * ``` js     * module.exports = {     *   proxy: {     *     // string shorthand     *     '/foo': 'http://localhost:4567/foo',     *     // with options     *     '/api': {     *       target: 'http://jsonplaceholder.typicode.com',     *       changeOrigin: true,     *       rewrite: path => path.replace(/^\/api/, '')     *     }     *   }     * }     * ```     */    proxy?: Record<string, string | ProxyOptions>;    /**     * Configure CORS for the dev server.     * Uses https://github.com/expressjs/cors.     * Set to `true` to allow all methods from any origin, or configure separately     * using an object.     */    cors?: CorsOptions | boolean;    /**     * Specify server response headers.     */    headers?: OutgoingHttpHeaders;}export declare interface ConfigEnv {    command: 'build' | 'serve';    mode: string;}export declare namespace Connect {    export type ServerHandle = HandleFunction | http.Server    export class IncomingMessage extends http.IncomingMessage {        originalUrl?: http.IncomingMessage['url']    }    export type NextFunction = (err?: any) => void    export type SimpleHandleFunction = (    req: IncomingMessage,    res: http.ServerResponse    ) => void    export type NextHandleFunction = (    req: IncomingMessage,    res: http.ServerResponse,    next: NextFunction    ) => void    export type ErrorHandleFunction = (    err: any,    req: IncomingMessage,    res: http.ServerResponse,    next: NextFunction    ) => void    export type HandleFunction =    | SimpleHandleFunction    | NextHandleFunction    | ErrorHandleFunction    export interface ServerStackItem {        route: string        handle: ServerHandle    }    export interface Server extends NodeJS.EventEmitter {        (req: http.IncomingMessage, res: http.ServerResponse, next?: Function): void        route: string        stack: ServerStackItem[]        /**         * Utilize the given middleware `handle` to the given `route`,         * defaulting to _/_. This "route" is the mount-point for the         * middleware, when given a value other than _/_ the middleware         * is only effective when that segment is present in the request's         * pathname.         *         * For example if we were to mount a function at _/admin_, it would         * be invoked on _/admin_, and _/admin/settings_, however it would         * not be invoked for _/_, or _/posts_.         */        use(fn: NextHandleFunction): Server        use(fn: HandleFunction): Server        use(route: string, fn: NextHandleFunction): Server        use(route: string, fn: HandleFunction): Server        /**         * Handle server requests, punting them down         * the middleware stack.         */        handle(        req: http.IncomingMessage,        res: http.ServerResponse,        next: Function        ): void        /**         * Listen for connections.         *         * This method takes the same arguments         * as node's `http.Server#listen()`.         *         * HTTP and HTTPS:         *         * If you run your application both as HTTP         * and HTTPS you may wrap them individually,         * since your Connect "server" is really just         * a JavaScript `Function`.         *         *      var connect = require('connect')         *        , http = require('http')         *        , https = require('https');         *         *      var app = connect();         *         *      http.createServer(app).listen(80);         *      https.createServer(options, app).listen(443);         */        listen(        port: number,        hostname?: string,        backlog?: number,        callback?: Function        ): http.Server        listen(port: number, hostname?: string, callback?: Function): http.Server        listen(path: string, callback?: Function): http.Server        listen(handle: any, listeningListener?: Function): http.Server    }}export declare interface ConnectedPayload {    type: 'connected'}/** * https://github.com/expressjs/cors#configuration-options */export declare interface CorsOptions {    origin?: CorsOrigin | ((origin: string, cb: (err: Error, origins: CorsOrigin) => void) => void);    methods?: string | string[];    allowedHeaders?: string | string[];    exposedHeaders?: string | string[];    credentials?: boolean;    maxAge?: number;    preflightContinue?: boolean;    optionsSuccessStatus?: number;}export declare type CorsOrigin = boolean | string | RegExp | (string | RegExp)[];export declare function createLogger(level?: LogLevel, options?: LoggerOptions): Logger;export declare function createServer(inlineConfig?: InlineConfig): Promise<ViteDevServer>;export declare interface CSSModulesOptions {    getJSON?: (cssFileName: string, json: Record<string, string>, outputFileName: string) => void;    scopeBehaviour?: 'global' | 'local';    globalModulePaths?: RegExp[];    generateScopedName?: string | ((name: string, filename: string, css: string) => string);    hashPrefix?: string;    /**     * default: null     */    localsConvention?: 'camelCase' | 'camelCaseOnly' | 'dashes' | 'dashesOnly' | null;}export declare interface CSSOptions {    /**     * https://github.com/css-modules/postcss-modules     */    modules?: CSSModulesOptions | false;    preprocessorOptions?: Record<string, any>;    postcss?: string | (PostCSS.ProcessOptions & {        plugins?: PostCSS.Plugin[];    });    /**     * Enables css sourcemaps during dev     * @default false     * @experimental     */    devSourcemap?: boolean;}export declare interface CustomEventMap {    'vite:beforeUpdate': UpdatePayload    'vite:beforePrune': PrunePayload    'vite:beforeFullReload': FullReloadPayload    'vite:error': ErrorPayload}export declare interface CustomPayload {    type: 'custom'    event: string    data?: any}/** * Type helper to make it easier to use vite.config.ts * accepts a direct {@link UserConfig} object, or a function that returns it. * The function receives a {@link ConfigEnv} object that exposes two properties: * `command` (either `'build'` or `'serve'`), and `mode`. */export declare function defineConfig(config: UserConfigExport): UserConfigExport;export declare interface DepOptimizationMetadata {    /**     * The main hash is determined by user config and dependency lockfiles.     * This is checked on server startup to avoid unnecessary re-bundles.     */    hash: string;    /**     * The browser hash is determined by the main hash plus additional dependencies     * discovered at runtime. This is used to invalidate browser requests to     * optimized deps.     */    browserHash: string;    /**     * Metadata for each already optimized dependency     */    optimized: Record<string, OptimizedDepInfo>;    /**     * Metadata for non-entry optimized chunks and dynamic imports     */    chunks: Record<string, OptimizedDepInfo>;    /**     * Metadata for each newly discovered dependency after processing     */    discovered: Record<string, OptimizedDepInfo>;    /**     * OptimizedDepInfo list     */    depInfoList: OptimizedDepInfo[];}export declare interface DepOptimizationOptions {    /**     * By default, Vite will crawl your `index.html` to detect dependencies that     * need to be pre-bundled. If `build.rollupOptions.input` is specified, Vite     * will crawl those entry points instead.     *     * If neither of these fit your needs, you can specify custom entries using     * this option - the value should be a fast-glob pattern or array of patterns     * (https://github.com/mrmlnc/fast-glob#basic-syntax) that are relative from     * vite project root. This will overwrite default entries inference.     */    entries?: string | string[];    /**     * Force optimize listed dependencies (must be resolvable import paths,     * cannot be globs).     */    include?: string[];    /**     * Do not optimize these dependencies (must be resolvable import paths,     * cannot be globs).     */    exclude?: string[];    /**     * Options to pass to esbuild during the dep scanning and optimization     *     * Certain options are omitted since changing them would not be compatible     * with Vite's dep optimization.     *     * - `external` is also omitted, use Vite's `optimizeDeps.exclude` option     * - `plugins` are merged with Vite's dep plugin     * - `keepNames` takes precedence over the deprecated `optimizeDeps.keepNames`     *     * https://esbuild.github.io/api     */    esbuildOptions?: Omit<BuildOptions_2, 'bundle' | 'entryPoints' | 'external' | 'write' | 'watch' | 'outdir' | 'outfile' | 'outbase' | 'outExtension' | 'metafile'>;    /**     * @deprecated use `esbuildOptions.keepNames`     */    keepNames?: boolean;    /**     * List of file extensions that can be optimized. A corresponding esbuild     * plugin must exist to handle the specific extension.     *     * By default, Vite can optimize `.mjs`, `.js`, and `.ts` files. This option     * allows specifying additional extensions.     *     * @experimental     */    extensions?: string[];    /**     * Disables dependencies optimizations     * @default false     * @experimental     */    disabled?: boolean;}export declare interface DepOptimizationProcessing {    promise: Promise<void>;    resolve: () => void;}export declare interface DepOptimizationResult {    metadata: DepOptimizationMetadata;    /**     * When doing a re-run, if there are newly discovered dependendencies     * the page reload will be delayed until the next rerun so we need     * to be able to discard the result     */    commit: () => Promise<void>;    cancel: () => void;}export declare interface ErrorPayload {    type: 'error'    err: {        [name: string]: any        message: string        stack: string        id?: string        frame?: string        plugin?: string        pluginCode?: string        loc?: {            file?: string            line: number            column: number        }    }}export declare interface ESBuildOptions extends EsbuildTransformOptions {    include?: string | RegExp | string[] | RegExp[];    exclude?: string | RegExp | string[] | RegExp[];    jsxInject?: string;}export { EsbuildTransformOptions }export declare type ESBuildTransformResult = Omit<TransformResult_2, 'map'> & {    map: SourceMap;};export declare interface FileSystemServeOptions {    /**     * Strictly restrict file accessing outside of allowing paths.     *     * Set to `false` to disable the warning     *     * @default true     */    strict?: boolean;    /**     * Restrict accessing files outside the allowed directories.     *     * Accepts absolute path or a path relative to project root.     * Will try to search up for workspace root by default.     */    allow?: string[];    /**     * Restrict accessing files that matches the patterns.     *     * This will have higher priority than `allow`.     * Glob patterns are supported.     *     * @default ['.env', '.env.*', '*.crt', '*.pem']     *     * @experimental     */    deny?: string[];}export declare function formatPostcssSourceMap(rawMap: ExistingRawSourceMap, file: string): ExistingRawSourceMap;export declare class FSWatcher extends EventEmitter implements fs.FSWatcher {    options: WatchOptions    /**     * Constructs a new FSWatcher instance with optional WatchOptions parameter.     */    constructor(options?: WatchOptions)    /**     * Add files, directories, or glob patterns for tracking. Takes an array of strings or just one     * string.     */    add(paths: string | ReadonlyArray<string>): this    /**     * Stop watching files, directories, or glob patterns. Takes an array of strings or just one     * string.     */    unwatch(paths: string | ReadonlyArray<string>): this    /**     * Returns an object representing all the paths on the file system being watched by this     * `FSWatcher` instance. The object's keys are all the directories (using absolute paths unless     * the `cwd` option was used), and the values are arrays of the names of the items contained in     * each directory.     */    getWatched(): {        [directory: string]: string[]    }    /**     * Removes all listeners from watched files.     */    close(): Promise<void>    on(    event: 'add' | 'addDir' | 'change',    listener: (path: string, stats?: fs.Stats) => void    ): this    on(    event: 'all',    listener: (    eventName: 'add' | 'addDir' | 'change' | 'unlink' | 'unlinkDir',    path: string,    stats?: fs.Stats    ) => void    ): this    /**     * Error occurred     */    on(event: 'error', listener: (error: Error) => void): this    /**     * Exposes the native Node `fs.FSWatcher events`     */    on(    event: 'raw',    listener: (eventName: string, path: string, details: any) => void    ): this    /**     * Fires when the initial scan is complete     */    on(event: 'ready', listener: () => void): this    on(event: 'unlink' | 'unlinkDir', listener: (path: string) => void): this    on(event: string, listener: (...args: any[]) => void): this}export declare interface FullReloadPayload {    type: 'full-reload'    path?: string}export declare interface HmrContext {    file: string;    timestamp: number;    modules: Array<ModuleNode>;    read: () => string | Promise<string>;    server: ViteDevServer;}export declare interface HmrOptions {    protocol?: string;    host?: string;    port?: number;    clientPort?: number;    path?: string;    timeout?: number;    overlay?: boolean;    server?: Server;}export declare type HMRPayload =| ConnectedPayload| UpdatePayload| FullReloadPayload| CustomPayload| ErrorPayload| PrunePayloadexport declare interface HtmlTagDescriptor {    tag: string;    attrs?: Record<string, string | boolean | undefined>;    children?: string | HtmlTagDescriptor[];    /**     * default: 'head-prepend'     */    injectTo?: 'head' | 'body' | 'head-prepend' | 'body-prepend';}export declare namespace HttpProxy {    export type ProxyTarget = ProxyTargetUrl | ProxyTargetDetailed    export type ProxyTargetUrl = string | Partial<url.Url>    export interface ProxyTargetDetailed {        host: string        port: number        protocol?: string        hostname?: string        socketPath?: string        key?: string        passphrase?: string        pfx?: Buffer | string        cert?: string        ca?: string        ciphers?: string        secureProtocol?: string    }    export type ErrorCallback = (    err: Error,    req: http.IncomingMessage,    res: http.ServerResponse,    target?: ProxyTargetUrl    ) => void    export class Server extends events.EventEmitter {        /**         * Creates the proxy server with specified options.         * @param options - Config object passed to the proxy         */        constructor(options?: ServerOptions)        /**         * Used for proxying regular HTTP(S) requests         * @param req - Client request.         * @param res - Client response.         * @param options - Additionnal options.         */        web(        req: http.IncomingMessage,        res: http.ServerResponse,        options?: ServerOptions,        callback?: ErrorCallback        ): void        /**         * Used for proxying regular HTTP(S) requests         * @param req - Client request.         * @param socket - Client socket.         * @param head - Client head.         * @param options - Additional options.         */        ws(        req: http.IncomingMessage,        socket: unknown,        head: unknown,        options?: ServerOptions,        callback?: ErrorCallback        ): void        /**         * A function that wraps the object in a webserver, for your convenience         * @param port - Port to listen on         */        listen(port: number): Server        /**         * A function that closes the inner webserver and stops listening on given port         */        close(callback?: () => void): void        /**         * Creates the proxy server with specified options.         * @param options - Config object passed to the proxy         * @returns Proxy object with handlers for `ws` and `web` requests         */        static createProxyServer(options?: ServerOptions): Server        /**         * Creates the proxy server with specified options.         * @param options - Config object passed to the proxy         * @returns Proxy object with handlers for `ws` and `web` requests         */        static createServer(options?: ServerOptions): Server        /**         * Creates the proxy server with specified options.         * @param options - Config object passed to the proxy         * @returns Proxy object with handlers for `ws` and `web` requests         */        static createProxy(options?: ServerOptions): Server        addListener(event: string, listener: () => void): this        on(event: string, listener: () => void): this        on(event: 'error', listener: ErrorCallback): this        on(        event: 'start',        listener: (        req: http.IncomingMessage,        res: http.ServerResponse,        target: ProxyTargetUrl        ) => void        ): this        on(        event: 'proxyReq',        listener: (        proxyReq: http.ClientRequest,        req: http.IncomingMessage,        res: http.ServerResponse,        options: ServerOptions        ) => void        ): this        on(        event: 'proxyRes',        listener: (        proxyRes: http.IncomingMessage,        req: http.IncomingMessage,        res: http.ServerResponse        ) => void        ): this        on(        event: 'proxyReqWs',        listener: (        proxyReq: http.ClientRequest,        req: http.IncomingMessage,        socket: net.Socket,        options: ServerOptions,        head: any        ) => void        ): this        on(        event: 'econnreset',        listener: (        err: Error,        req: http.IncomingMessage,        res: http.ServerResponse,        target: ProxyTargetUrl        ) => void        ): this        on(        event: 'end',        listener: (        req: http.IncomingMessage,        res: http.ServerResponse,        proxyRes: http.IncomingMessage        ) => void        ): this        on(        event: 'close',        listener: (        proxyRes: http.IncomingMessage,        proxySocket: net.Socket,        proxyHead: any        ) => void        ): this        once(event: string, listener: () => void): this        removeListener(event: string, listener: () => void): this        removeAllListeners(event?: string): this        getMaxListeners(): number        setMaxListeners(n: number): this        listeners(event: string): Array<() => void>        emit(event: string, ...args: any[]): boolean        listenerCount(type: string): number    }    export interface ServerOptions {        /** URL string to be parsed with the url module. */        target?: ProxyTarget        /** URL string to be parsed with the url module. */        forward?: ProxyTargetUrl        /** Object to be passed to http(s).request. */        agent?: any        /** Object to be passed to https.createServer(). */        ssl?: any        /** If you want to proxy websockets. */        ws?: boolean        /** Adds x- forward headers. */        xfwd?: boolean        /** Verify SSL certificate. */        secure?: boolean        /** Explicitly specify if we are proxying to another proxy. */        toProxy?: boolean        /** Specify whether you want to prepend the target's path to the proxy path. */        prependPath?: boolean        /** Specify whether you want to ignore the proxy path of the incoming request. */        ignorePath?: boolean        /** Local interface string to bind for outgoing connections. */        localAddress?: string        /** Changes the origin of the host header to the target URL. */        changeOrigin?: boolean        /** specify whether you want to keep letter case of response header key */        preserveHeaderKeyCase?: boolean        /** Basic authentication i.e. 'user:password' to compute an Authorization header. */        auth?: string        /** Rewrites the location hostname on (301 / 302 / 307 / 308) redirects, Default: null. */        hostRewrite?: string        /** Rewrites the location host/ port on (301 / 302 / 307 / 308) redirects based on requested host/ port.Default: false. */        autoRewrite?: boolean        /** Rewrites the location protocol on (301 / 302 / 307 / 308) redirects to 'http' or 'https'.Default: null. */        protocolRewrite?: string        /** rewrites domain of set-cookie headers. */        cookieDomainRewrite?: false | string | { [oldDomain: string]: string }        /** rewrites path of set-cookie headers. Default: false */        cookiePathRewrite?: false | string | { [oldPath: string]: string }        /** object with extra headers to be added to target requests. */        headers?: { [header: string]: string }        /** Timeout (in milliseconds) when proxy receives no response from target. Default: 120000 (2 minutes) */        proxyTimeout?: number        /** Timeout (in milliseconds) for incoming requests */        timeout?: number        /** Specify whether you want to follow redirects. Default: false */        followRedirects?: boolean        /** If set to true, none of the webOutgoing passes are called and it's your responsibility to appropriately return the response by listening and acting on the proxyRes event */        selfHandleResponse?: boolean        /** Buffer */        buffer?: stream.Stream    }}export declare type IndexHtmlTransform = IndexHtmlTransformHook | {    enforce?: 'pre' | 'post';    transform: IndexHtmlTransformHook;};export declare interface IndexHtmlTransformContext {    /**     * public path when served     */    path: string;    /**     * filename on disk     */    filename: string;    server?: ViteDevServer;    bundle?: OutputBundle;    chunk?: OutputChunk;    originalUrl?: string;}export declare type IndexHtmlTransformHook = (html: string, ctx: IndexHtmlTransformContext) => IndexHtmlTransformResult | void | Promise<IndexHtmlTransformResult | void>;export declare type IndexHtmlTransformResult = string | HtmlTagDescriptor[] | {    html: string;    tags: HtmlTagDescriptor[];};export declare type InferCustomEventPayload<T extends string> =T extends keyof CustomEventMap ? CustomEventMap[T] : anyexport declare interface InlineConfig extends UserConfig {    configFile?: string | false;    envFile?: false;}export declare interface InternalResolveOptions extends ResolveOptions {    root: string;    isBuild: boolean;    isProduction: boolean;    ssrConfig?: SSROptions;    packageCache?: PackageCache;    /**     * src code mode also attempts the following:     * - resolving /xxx as URLs     * - resolving bare imports from optimized deps     */    asSrc?: boolean;    tryIndex?: boolean;    tryPrefix?: string;    skipPackageJson?: boolean;    preferRelative?: boolean;    preserveSymlinks?: boolean;    isRequire?: boolean;    isFromTsImporter?: boolean;    tryEsmOnly?: boolean;    scan?: boolean;}export declare interface JsonOptions {    /**     * Generate a named export for every property of the JSON object     * @default true     */    namedExports?: boolean;    /**     * Generate performant output as JSON.parse("stringified").     * Enabling this will disable namedExports.     * @default false     */    stringify?: boolean;}export declare type LibraryFormats = 'es' | 'cjs' | 'umd' | 'iife';export declare interface LibraryOptions {    entry: string;    name?: string;    formats?: LibraryFormats[];    fileName?: string | ((format: ModuleFormat) => string);}export declare function loadConfigFromFile(configEnv: ConfigEnv, configFile?: string, configRoot?: string, logLevel?: LogLevel): Promise<{    path: string;    config: UserConfig;    dependencies: string[];} | null>;export declare function loadEnv(mode: string, envDir: string, prefixes?: string | string[]): Record<string, string>;export declare interface LogErrorOptions extends LogOptions {    error?: Error | RollupError | null;}export declare interface Logger {    info(msg: string, options?: LogOptions): void;    warn(msg: string, options?: LogOptions): void;    warnOnce(msg: string, options?: LogOptions): void;    error(msg: string, options?: LogErrorOptions): void;    clearScreen(type: LogType): void;    hasErrorLogged(error: Error | RollupError): boolean;    hasWarned: boolean;}export declare interface LoggerOptions {    prefix?: string;    allowClearScreen?: boolean;    customLogger?: Logger;}export declare type LogLevel = LogType | 'silent';export declare interface LogOptions {    clear?: boolean;    timestamp?: boolean;}export declare type LogType = 'error' | 'warn' | 'info';export declare type Manifest = Record<string, ManifestChunk>;export declare interface ManifestChunk {    src?: string;    file: string;    css?: string[];    assets?: string[];    isEntry?: boolean;    isDynamicEntry?: boolean;    imports?: string[];    dynamicImports?: string[];}export declare type Matcher = AnymatchPattern | AnymatchPattern[]export declare function mergeConfig(defaults: Record<string, any>, overrides: Record<string, any>, isRoot?: boolean): Record<string, any>;export declare class ModuleGraph {    private resolveId;    urlToModuleMap: Map<string, ModuleNode>;    idToModuleMap: Map<string, ModuleNode>;    fileToModulesMap: Map<string, Set<ModuleNode>>;    safeModulesPath: Set<string>;    constructor(resolveId: (url: string, ssr: boolean) => Promise<PartialResolvedId | null>);    getModuleByUrl(rawUrl: string, ssr?: boolean): Promise<ModuleNode | undefined>;    getModuleById(id: string): ModuleNode | undefined;    getModulesByFile(file: string): Set<ModuleNode> | undefined;    onFileChange(file: string): void;    invalidateModule(mod: ModuleNode, seen?: Set<ModuleNode>, timestamp?: number): void;    invalidateAll(): void;    /**     * Update the module graph based on a module's updated imports information     * If there are dependencies that no longer have any importers, they are     * returned as a Set.     */    updateModuleInfo(mod: ModuleNode, importedModules: Set<string | ModuleNode>, acceptedModules: Set<string | ModuleNode>, isSelfAccepting: boolean, ssr?: boolean): Promise<Set<ModuleNode> | undefined>;    ensureEntryFromUrl(rawUrl: string, ssr?: boolean): Promise<ModuleNode>;    createFileOnlyEntry(file: string): ModuleNode;    resolveUrl(url: string, ssr?: boolean): Promise<ResolvedUrl>;}export declare class ModuleNode {    /**     * Public served url path, starts with /     */    url: string;    /**     * Resolved file system path + query     */    id: string | null;    file: string | null;    type: 'js' | 'css';    info?: ModuleInfo;    meta?: Record<string, any>;    importers: Set<ModuleNode>;    importedModules: Set<ModuleNode>;    acceptedHmrDeps: Set<ModuleNode>;    isSelfAccepting?: boolean;    transformResult: TransformResult | null;    ssrTransformResult: TransformResult | null;    ssrModule: Record<string, any> | null;    ssrError: Error | null;    lastHMRTimestamp: number;    lastInvalidationTimestamp: number;    constructor(url: string);}export declare function normalizePath(id: string): string;export declare interface OptimizedDepInfo {    id: string;    file: string;    src?: string;    needsInterop?: boolean;    browserHash?: string;    fileHash?: string;    /**     * During optimization, ids can still be resolved to their final location     * but the bundles may not yet be saved to disk     */    processing?: Promise<void>;}export declare interface OptimizedDeps {    metadata: DepOptimizationMetadata;    scanProcessing?: Promise<void>;    registerMissingImport: (id: string, resolved: string) => OptimizedDepInfo;}/** * Used by Vite CLI when running `vite optimize` */export declare function optimizeDeps(config: ResolvedConfig, force?: boolean | undefined, asCommand?: boolean): Promise<DepOptimizationMetadata>;/** Cache for package.json resolution and package.json contents */export declare type PackageCache = Map<string, PackageData>;export declare interface PackageData {    dir: string;    hasSideEffects: (id: string) => boolean | 'no-treeshake';    webResolvedImports: Record<string, string | undefined>;    nodeResolvedImports: Record<string, string | undefined>;    setResolvedCache: (key: string, entry: string, targetWeb: boolean) => void;    getResolvedCache: (key: string, targetWeb: boolean) => string | undefined;    data: {        [field: string]: any;        version: string;        main: string;        module: string;        browser: string | Record<string, string | false>;        exports: string | Record<string, any> | string[];        dependencies: Record<string, string>;    };}/** * Vite plugins extends the Rollup plugin interface with a few extra * vite-specific options. A valid vite plugin is also a valid Rollup plugin. * On the contrary, a Rollup plugin may or may NOT be a valid vite universal * plugin, since some Rollup features do not make sense in an unbundled * dev server context. That said, as long as a rollup plugin doesn't have strong * coupling between its bundle phase and output phase hooks then it should * just work (that means, most of them). * * By default, the plugins are run during both serve and build. When a plugin * is applied during serve, it will only run **non output plugin hooks** (see * rollup type definition of {@link rollup#PluginHooks}). You can think of the * dev server as only running `const bundle = rollup.rollup()` but never calling * `bundle.generate()`. * * A plugin that expects to have different behavior depending on serve/build can * export a factory function that receives the command being run via options. * * If a plugin should be applied only for server or build, a function format * config file can be used to conditional determine the plugins to use. */export declare interface Plugin extends Plugin_2 {    /**     * Enforce plugin invocation tier similar to webpack loaders.     *     * Plugin invocation order:     * - alias resolution     * - `enforce: 'pre'` plugins     * - vite core plugins     * - normal plugins     * - vite build plugins     * - `enforce: 'post'` plugins     * - vite build post plugins     */    enforce?: 'pre' | 'post';    /**     * Apply the plugin only for serve or build, or on certain conditions.     */    apply?: 'serve' | 'build' | ((config: UserConfig, env: ConfigEnv) => boolean);    /**     * Modify vite config before it's resolved. The hook can either mutate the     * passed-in config directly, or return a partial config object that will be     * deeply merged into existing config.     *     * Note: User plugins are resolved before running this hook so injecting other     * plugins inside  the `config` hook will have no effect.     */    config?: (config: UserConfig, env: ConfigEnv) => UserConfig | null | void | Promise<UserConfig | null | void>;    /**     * Use this hook to read and store the final resolved vite config.     */    configResolved?: (config: ResolvedConfig) => void | Promise<void>;    /**     * Configure the vite server. The hook receives the {@link ViteDevServer}     * instance. This can also be used to store a reference to the server     * for use in other hooks.     *     * The hooks will be called before internal middlewares are applied. A hook     * can return a post hook that will be called after internal middlewares     * are applied. Hook can be async functions and will be called in series.     */    configureServer?: ServerHook;    /**     * Configure the preview server. The hook receives the connect server and     * its underlying http server.     *     * The hooks are called before other middlewares are applied. A hook can     * return a post hook that will be called after other middlewares are     * applied. Hooks can be async functions and will be called in series.     */    configurePreviewServer?: PreviewServerHook;    /**     * Transform index.html.     * The hook receives the following arguments:     *     * - html: string     * - ctx?: vite.ServerContext (only present during serve)     * - bundle?: rollup.OutputBundle (only present during build)     *     * It can either return a transformed string, or a list of html tag     * descriptors that will be injected into the <head> or <body>.     *     * By default the transform is applied **after** vite's internal html     * transform. If you need to apply the transform before vite, use an object:     * `{ enforce: 'pre', transform: hook }`     */    transformIndexHtml?: IndexHtmlTransform;    /**     * Perform custom handling of HMR updates.     * The handler receives a context containing changed filename, timestamp, a     * list of modules affected by the file change, and the dev server instance.     *     * - The hook can return a filtered list of modules to narrow down the update.     *   e.g. for a Vue SFC, we can narrow down the part to update by comparing     *   the descriptors.     *     * - The hook can also return an empty array and then perform custom updates     *   by sending a custom hmr payload via server.ws.send().     *     * - If the hook doesn't return a value, the hmr update will be performed as     *   normal.     */    handleHotUpdate?(ctx: HmrContext): Array<ModuleNode> | void | Promise<Array<ModuleNode> | void>;    /**     * extend hooks with ssr flag     */    resolveId?(this: PluginContext, source: string, importer: string | undefined, options: {        custom?: CustomPluginOptions;        ssr?: boolean;        /* Excluded from this release type: scan */    }): Promise<ResolveIdResult> | ResolveIdResult;    load?(this: PluginContext, id: string, options?: {        ssr?: boolean;    }): Promise<LoadResult> | LoadResult;    transform?(this: TransformPluginContext, code: string, id: string, options?: {        ssr?: boolean;    }): Promise<TransformResult_3> | TransformResult_3;}export declare interface PluginContainer {    options: InputOptions;    getModuleInfo(id: string): ModuleInfo | null;    buildStart(options: InputOptions): Promise<void>;    resolveId(id: string, importer?: string, options?: {        skip?: Set<Plugin>;        ssr?: boolean;        /* Excluded from this release type: scan */    }): Promise<PartialResolvedId | null>;    transform(code: string, id: string, options?: {        inMap?: SourceDescription['map'];        ssr?: boolean;    }): Promise<SourceDescription | null>;    load(id: string, options?: {        ssr?: boolean;    }): Promise<LoadResult | null>;    close(): Promise<void>;}export declare type PluginOption = Plugin | false | null | undefined | PluginOption[];/** * Starts the Vite server in preview mode, to simulate a production deployment * @experimental */export declare function preview(inlineConfig: InlineConfig): Promise<PreviewServer>;export declare interface PreviewOptions extends CommonServerOptions {}export declare interface PreviewServer {    /**     * The resolved vite config object     */    config: ResolvedConfig;    /**     * native Node http server instance     */    httpServer: Server;    /**     * Print server urls     */    printUrls: () => void;}export declare type PreviewServerHook = (server: {    middlewares: Connect.Server;    httpServer: http.Server;}) => (() => void) | void | Promise<(() => void) | void>;/** * @deprecated Use `server.printUrls()` instead */export declare function printHttpServerUrls(server: Server_3, config: ResolvedConfig): void;export declare interface ProxyOptions extends HttpProxy.ServerOptions {    /**     * rewrite path     */    rewrite?: (path: string) => string;    /**     * configure the proxy server (e.g. listen to events)     */    configure?: (proxy: HttpProxy.Server, options: ProxyOptions) => void;    /**     * webpack-dev-server style bypass function     */    bypass?: (req: http.IncomingMessage, res: http.ServerResponse, options: ProxyOptions) => void | null | undefined | false | string;}export declare interface PrunePayload {    type: 'prune'    paths: string[]}export declare function resolveConfig(inlineConfig: InlineConfig, command: 'build' | 'serve', defaultMode?: string): Promise<ResolvedConfig>;export declare type ResolvedBuildOptions = Required<Omit<BuildOptions, 'base' | 'cleanCssOptions' | 'polyfillDynamicImport' | 'brotliSize'>>;export declare type ResolvedConfig = Readonly<Omit<UserConfig, 'plugins' | 'alias' | 'dedupe' | 'assetsInclude' | 'optimizeDeps' | 'worker'> & {    configFile: string | undefined;    configFileDependencies: string[];    inlineConfig: InlineConfig;    root: string;    base: string;    publicDir: string;    cacheDir: string;    command: 'build' | 'serve';    mode: string;    isWorker: boolean;    isProduction: boolean;    env: Record<string, any>;    resolve: ResolveOptions & {        alias: Alias[];    };    plugins: readonly Plugin[];    server: ResolvedServerOptions;    build: ResolvedBuildOptions;    preview: ResolvedPreviewOptions;    assetsInclude: (file: string) => boolean;    logger: Logger;    createResolver: (options?: Partial<InternalResolveOptions>) => ResolveFn;    optimizeDeps: Omit<DepOptimizationOptions, 'keepNames'>;    /* Excluded from this release type: packageCache */    worker: ResolveWorkerOptions;}>;export declare interface ResolvedPreviewOptions extends PreviewOptions {}export declare interface ResolvedServerOptions extends ServerOptions {    fs: Required<FileSystemServeOptions>;}export declare type ResolvedUrl = [url: string,resolvedId: string,meta: object | null | undefined];export declare function resolveEnvPrefix({ envPrefix }: UserConfig): string[];export declare type ResolveFn = (id: string, importer?: string, aliasOnly?: boolean, ssr?: boolean) => Promise<string | undefined>;export declare interface ResolveOptions {    mainFields?: string[];    conditions?: string[];    extensions?: string[];    dedupe?: string[];    preserveSymlinks?: boolean;}export declare function resolvePackageData(id: string, basedir: string, preserveSymlinks?: boolean, packageCache?: PackageCache): PackageData | null;export declare function resolvePackageEntry(id: string, { dir, data, setResolvedCache, getResolvedCache }: PackageData, targetWeb: boolean, options: InternalResolveOptions): string | undefined;export declare type ResolverFunction = PluginHooks['resolveId']export declare interface ResolverObject {    buildStart?: PluginHooks['buildStart']    resolveId: ResolverFunction}export declare interface ResolveWorkerOptions {    format: 'es' | 'iife';    plugins: Plugin[];    rollupOptions: RollupOptions;}/** * https://github.com/rollup/plugins/blob/master/packages/commonjs/types/index.d.ts * * This source code is licensed under the MIT license found in the * LICENSE file at * https://github.com/rollup/plugins/blob/master/LICENSE */export declare interface RollupCommonJSOptions {    /**     * A picomatch pattern, or array of patterns, which specifies the files in     * the build the plugin should operate on. By default, all files with     * extension `".cjs"` or those in `extensions` are included, but you can narrow     * this list by only including specific files. These files will be analyzed     * and transpiled if either the analysis does not find ES module specific     * statements or `transformMixedEsModules` is `true`.     * @default undefined     */    include?: string | RegExp | readonly (string | RegExp)[]    /**     * A picomatch pattern, or array of patterns, which specifies the files in     * the build the plugin should _ignore_. By default, all files with     * extensions other than those in `extensions` or `".cjs"` are ignored, but you     * can exclude additional files. See also the `include` option.     * @default undefined     */    exclude?: string | RegExp | readonly (string | RegExp)[]    /**     * For extensionless imports, search for extensions other than .js in the     * order specified. Note that you need to make sure that non-JavaScript files     * are transpiled by another plugin first.     * @default [ '.js' ]     */    extensions?: ReadonlyArray<string>    /**     * If true then uses of `global` won't be dealt with by this plugin     * @default false     */    ignoreGlobal?: boolean    /**     * If false, skips source map generation for CommonJS modules. This will improve performance.     * @default true     */    sourceMap?: boolean    /**     * Some `require` calls cannot be resolved statically to be translated to     * imports.     * When this option is set to `false`, the generated code will either     * directly throw an error when such a call is encountered or, when     * `dynamicRequireTargets` is used, when such a call cannot be resolved with a     * configured dynamic require target.     * Setting this option to `true` will instead leave the `require` call in the     * code or use it as a fallback for `dynamicRequireTargets`.     * @default false     */    ignoreDynamicRequires?: boolean    /**     * Instructs the plugin whether to enable mixed module transformations. This     * is useful in scenarios with modules that contain a mix of ES `import`     * statements and CommonJS `require` expressions. Set to `true` if `require`     * calls should be transformed to imports in mixed modules, or `false` if the     * `require` expressions should survive the transformation. The latter can be     * important if the code contains environment detection, or you are coding     * for an environment with special treatment for `require` calls such as     * ElectronJS. See also the `ignore` option.     * @default false     */    transformMixedEsModules?: boolean    /**     * Sometimes you have to leave require statements unconverted. Pass an array     * containing the IDs or a `id => boolean` function.     * @default []     */    ignore?: ReadonlyArray<string> | ((id: string) => boolean)    /**     * In most cases, where `require` calls are inside a `try-catch` clause,     * they should be left unconverted as it requires an optional dependency     * that may or may not be installed beside the rolled up package.     * Due to the conversion of `require` to a static `import` - the call is hoisted     * to the top of the file, outside of the `try-catch` clause.     *     * - `true`: All `require` calls inside a `try` will be left unconverted.     * - `false`: All `require` calls inside a `try` will be converted as if the `try-catch` clause is not there.     * - `remove`: Remove all `require` calls from inside any `try` block.     * - `string[]`: Pass an array containing the IDs to left unconverted.     * - `((id: string) => boolean|'remove')`: Pass a function that control individual IDs.     *     * @default false     */    ignoreTryCatch?:    | boolean    | 'remove'    | ReadonlyArray<string>    | ((id: string) => boolean | 'remove')    /**     * Controls how to render imports from external dependencies. By default,     * this plugin assumes that all external dependencies are CommonJS. This     * means they are rendered as default imports to be compatible with e.g.     * NodeJS where ES modules can only import a default export from a CommonJS     * dependency.     *     * If you set `esmExternals` to `true`, this plugins assumes that all     * external dependencies are ES modules and respect the     * `requireReturnsDefault` option. If that option is not set, they will be     * rendered as namespace imports.     *     * You can also supply an array of ids to be treated as ES modules, or a     * function that will be passed each external id to determine if it is an ES     * module.     * @default false     */    esmExternals?: boolean | ReadonlyArray<string> | ((id: string) => boolean)    /**     * Controls what is returned when requiring an ES module from a CommonJS file.     * When using the `esmExternals` option, this will also apply to external     * modules. By default, this plugin will render those imports as namespace     * imports i.e.     *     * ```js     * // input     * const foo = require('foo');     *     * // output     * import * as foo from 'foo';     * ```     *     * However there are some situations where this may not be desired.     * For these situations, you can change Rollup's behaviour either globally or     * per module. To change it globally, set the `requireReturnsDefault` option     * to one of the following values:     *     * - `false`: This is the default, requiring an ES module returns its     *   namespace. This is the only option that will also add a marker     *   `__esModule: true` to the namespace to support interop patterns in     *   CommonJS modules that are transpiled ES modules.     * - `"namespace"`: Like `false`, requiring an ES module returns its     *   namespace, but the plugin does not add the `__esModule` marker and thus     *   creates more efficient code. For external dependencies when using     *   `esmExternals: true`, no additional interop code is generated.     * - `"auto"`: This is complementary to how `output.exports: "auto"` works in     *   Rollup: If a module has a default export and no named exports, requiring     *   that module returns the default export. In all other cases, the namespace     *   is returned. For external dependencies when using `esmExternals: true`, a     *   corresponding interop helper is added.     * - `"preferred"`: If a module has a default export, requiring that module     *   always returns the default export, no matter whether additional named     *   exports exist. This is similar to how previous versions of this plugin     *   worked. Again for external dependencies when using `esmExternals: true`,     *   an interop helper is added.     * - `true`: This will always try to return the default export on require     *   without checking if it actually exists. This can throw at build time if     *   there is no default export. This is how external dependencies are handled     *   when `esmExternals` is not used. The advantage over the other options is     *   that, like `false`, this does not add an interop helper for external     *   dependencies, keeping the code lean.     *     * To change this for individual modules, you can supply a function for     * `requireReturnsDefault` instead. This function will then be called once for     * each required ES module or external dependency with the corresponding id     * and allows you to return different values for different modules.     * @default false     */    requireReturnsDefault?:    | boolean    | 'auto'    | 'preferred'    | 'namespace'    | ((id: string) => boolean | 'auto' | 'preferred' | 'namespace')    /**     * Some modules contain dynamic `require` calls, or require modules that     * contain circular dependencies, which are not handled well by static     * imports. Including those modules as `dynamicRequireTargets` will simulate a     * CommonJS (NodeJS-like)  environment for them with support for dynamic and     * circular dependencies.     *     * Note: In extreme cases, this feature may result in some paths being     * rendered as absolute in the final bundle. The plugin tries to avoid     * exposing paths from the local machine, but if you are `dynamicRequirePaths`     * with paths that are far away from your project's folder, that may require     * replacing strings like `"/Users/John/Desktop/foo-project/"` -\> `"/"`.     */    dynamicRequireTargets?: string | ReadonlyArray<string>}export declare interface RollupDynamicImportVarsOptions {    /**     * Files to include in this plugin (default all).     * @default []     */    include?: string | RegExp | (string | RegExp)[]    /**     * Files to exclude in this plugin (default none).     * @default []     */    exclude?: string | RegExp | (string | RegExp)[]    /**     * By default, the plugin quits the build process when it encounters an error. If you set this option to true, it will throw a warning instead and leave the code untouched.     * @default false     */    warnOnError?: boolean}/** * Search up for the nearest workspace root */export declare function searchForWorkspaceRoot(current: string, root?: string): string;export declare function send(req: IncomingMessage, res: ServerResponse, content: string | Buffer, type: string, options: SendOptions): void;export declare interface SendOptions {    etag?: string;    cacheControl?: string;    headers?: OutgoingHttpHeaders;    map?: SourceMap | null;}export declare type ServerHook = (server: ViteDevServer) => (() => void) | void | Promise<(() => void) | void>;export declare interface ServerOptions extends CommonServerOptions {    /**     * Force dep pre-optimization regardless of whether deps have changed.     */    force?: boolean;    /**     * Configure HMR-specific options (port, host, path & protocol)     */    hmr?: HmrOptions | boolean;    /**     * chokidar watch options     * https://github.com/paulmillr/chokidar#api     */    watch?: WatchOptions;    /**     * Create Vite dev server to be used as a middleware in an existing server     */    middlewareMode?: boolean | 'html' | 'ssr';    /**     * Prepend this folder to http requests, for use when proxying vite as a subfolder     * Should start and end with the `/` character     */    base?: string;    /**     * Options for files served via '/\@fs/'.     */    fs?: FileSystemServeOptions;    /**     * Origin for the generated asset URLs.     *     * @example `http://127.0.0.1:8080`     */    origin?: string;    /**     * Pre-transform known direct imports     *     * @experimental this option is experimental and might be changed in the future     * @default true     */    preTransformRequests?: boolean;}export declare function sortUserPlugins(plugins: (Plugin | Plugin[])[] | undefined): [Plugin[], Plugin[], Plugin[]];export declare function splitVendorChunk(options?: {    cache?: SplitVendorChunkCache;}): GetManualChunk;export declare class SplitVendorChunkCache {    cache: Map<string, boolean>;    constructor();    reset(): void;}export declare function splitVendorChunkPlugin(): Plugin;export declare interface SSROptions {    external?: string[];    noExternal?: string | RegExp | (string | RegExp)[] | true;    /**     * Define the target for the ssr build. The browser field in package.json     * is ignored for node but used if webworker is the target     * Default: 'node'     */    target?: SSRTarget;}export declare type SSRTarget = 'node' | 'webworker';export declare namespace Terser {    export type ECMA = 5 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020    export interface ParseOptions {        bare_returns?: boolean        ecma?: ECMA        html5_comments?: boolean        shebang?: boolean    }    export interface CompressOptions {        arguments?: boolean        arrows?: boolean        booleans_as_integers?: boolean        booleans?: boolean        collapse_vars?: boolean        comparisons?: boolean        computed_props?: boolean        conditionals?: boolean        dead_code?: boolean        defaults?: boolean        directives?: boolean        drop_console?: boolean        drop_debugger?: boolean        ecma?: ECMA        evaluate?: boolean        expression?: boolean        global_defs?: object        hoist_funs?: boolean        hoist_props?: boolean        hoist_vars?: boolean        ie8?: boolean        if_return?: boolean        inline?: boolean | InlineFunctions        join_vars?: boolean        keep_classnames?: boolean | RegExp        keep_fargs?: boolean        keep_fnames?: boolean | RegExp        keep_infinity?: boolean        loops?: boolean        module?: boolean        negate_iife?: boolean        passes?: number        properties?: boolean        pure_funcs?: string[]        pure_getters?: boolean | 'strict'        reduce_funcs?: boolean        reduce_vars?: boolean        sequences?: boolean | number        side_effects?: boolean        switches?: boolean        toplevel?: boolean        top_retain?: null | string | string[] | RegExp        typeofs?: boolean        unsafe_arrows?: boolean        unsafe?: boolean        unsafe_comps?: boolean        unsafe_Function?: boolean        unsafe_math?: boolean        unsafe_symbols?: boolean        unsafe_methods?: boolean        unsafe_proto?: boolean        unsafe_regexp?: boolean        unsafe_undefined?: boolean        unused?: boolean    }    export enum InlineFunctions {        Disabled = 0,        SimpleFunctions = 1,        WithArguments = 2,        WithArgumentsAndVariables = 3    }    export interface MangleOptions {        eval?: boolean        keep_classnames?: boolean | RegExp        keep_fnames?: boolean | RegExp        module?: boolean        properties?: boolean | ManglePropertiesOptions        reserved?: string[]        safari10?: boolean        toplevel?: boolean    }    export interface ManglePropertiesOptions {        builtins?: boolean        debug?: boolean        keep_quoted?: boolean | 'strict'        regex?: RegExp | string        reserved?: string[]    }    export interface FormatOptions {        ascii_only?: boolean        beautify?: boolean        braces?: boolean        comments?:        | boolean        | 'all'        | 'some'        | RegExp        | ((        node: any,        comment: {            value: string            type: 'comment1' | 'comment2' | 'comment3' | 'comment4'            pos: number            line: number            col: number        }        ) => boolean)        ecma?: ECMA        ie8?: boolean        indent_level?: number        indent_start?: number        inline_script?: boolean        keep_quoted_props?: boolean        max_line_len?: number | false        preamble?: string        preserve_annotations?: boolean        quote_keys?: boolean        quote_style?: OutputQuoteStyle        safari10?: boolean        semicolons?: boolean        shebang?: boolean        shorthand?: boolean        source_map?: SourceMapOptions        webkit?: boolean        width?: number        wrap_iife?: boolean        wrap_func_args?: boolean    }    export enum OutputQuoteStyle {        PreferDouble = 0,        AlwaysSingle = 1,        AlwaysDouble = 2,        AlwaysOriginal = 3    }    export interface MinifyOptions {        compress?: boolean | CompressOptions        ecma?: ECMA        ie8?: boolean        keep_classnames?: boolean | RegExp        keep_fnames?: boolean | RegExp        mangle?: boolean | MangleOptions        module?: boolean        nameCache?: object        format?: FormatOptions        /** @deprecated use format instead */        output?: FormatOptions        parse?: ParseOptions        safari10?: boolean        sourceMap?: boolean | SourceMapOptions        toplevel?: boolean    }    export interface MinifyOutput {        code?: string        map?: object | string    }    export interface SourceMapOptions {        /** Source map object, 'inline' or source map file content */        content?: object | string        includeSources?: boolean        filename?: string        root?: string        url?: string | 'inline'    }}export declare interface TransformOptions {    ssr?: boolean;    html?: boolean;}export declare interface TransformResult {    code: string;    map: SourceMap | null;    etag?: string;    deps?: string[];    dynamicDeps?: string[];}export declare function transformWithEsbuild(code: string, filename: string, options?: EsbuildTransformOptions, inMap?: object): Promise<ESBuildTransformResult>;export declare interface Update {    type: 'js-update' | 'css-update'    path: string    acceptedPath: string    timestamp: number}export declare interface UpdatePayload {    type: 'update'    updates: Update[]}export declare interface UserConfig {    /**     * Project root directory. Can be an absolute path, or a path relative from     * the location of the config file itself.     * @default process.cwd()     */    root?: string;    /**     * Base public path when served in development or production.     * @default '/'     */    base?: string;    /**     * Directory to serve as plain static assets. Files in this directory are     * served and copied to build dist dir as-is without transform. The value     * can be either an absolute file system path or a path relative to <root>.     *     * Set to `false` or an empty string to disable copied static assets to build dist dir.     * @default 'public'     */    publicDir?: string | false;    /**     * Directory to save cache files. Files in this directory are pre-bundled     * deps or some other cache files that generated by vite, which can improve     * the performance. You can use `--force` flag or manually delete the directory     * to regenerate the cache files. The value can be either an absolute file     * system path or a path relative to <root>.     * Default to `.vite` when no `package.json` is detected.     * @default 'node_modules/.vite'     */    cacheDir?: string;    /**     * Explicitly set a mode to run in. This will override the default mode for     * each command, and can be overridden by the command line --mode option.     */    mode?: string;    /**     * Define global variable replacements.     * Entries will be defined on `window` during dev and replaced during build.     */    define?: Record<string, any>;    /**     * Array of vite plugins to use.     */    plugins?: PluginOption[];    /**     * Configure resolver     */    resolve?: ResolveOptions & {        alias?: AliasOptions;    };    /**     * CSS related options (preprocessors and CSS modules)     */    css?: CSSOptions;    /**     * JSON loading options     */    json?: JsonOptions;    /**     * Transform options to pass to esbuild.     * Or set to `false` to disable esbuild.     */    esbuild?: ESBuildOptions | false;    /**     * Specify additional picomatch patterns to be treated as static assets.     */    assetsInclude?: string | RegExp | (string | RegExp)[];    /**     * Server specific options, e.g. host, port, https...     */    server?: ServerOptions;    /**     * Build specific options     */    build?: BuildOptions;    /**     * Preview specific options, e.g. host, port, https...     */    preview?: PreviewOptions;    /**     * Dep optimization options     */    optimizeDeps?: DepOptimizationOptions;    /* Excluded from this release type: ssr */    /**     * Log level.     * Default: 'info'     */    logLevel?: LogLevel;    /**     * Custom logger.     */    customLogger?: Logger;    /**     * Default: true     */    clearScreen?: boolean;    /**     * Environment files directory. Can be an absolute path, or a path relative from     * the location of the config file itself.     * @default root     */    envDir?: string;    /**     * Env variables starts with `envPrefix` will be exposed to your client source code via import.meta.env.     * @default 'VITE_'     */    envPrefix?: string | string[];    /**     * Import aliases     * @deprecated use `resolve.alias` instead     */    alias?: AliasOptions;    /**     * Force Vite to always resolve listed dependencies to the same copy (from     * project root).     * @deprecated use `resolve.dedupe` instead     */    dedupe?: string[];    /**     * Worker bundle options     */    worker?: {        /**         * Output format for worker bundle         * @default 'iife'         */        format?: 'es' | 'iife';        /**         * Vite plugins that apply to worker bundle         */        plugins?: PluginOption[];        /**         * Rollup options to build worker bundle         */        rollupOptions?: Omit<RollupOptions, 'plugins' | 'input' | 'onwarn' | 'preserveEntrySignatures'>;    };}export declare type UserConfigExport = UserConfig | Promise<UserConfig> | UserConfigFn;export declare type UserConfigFn = (env: ConfigEnv) => UserConfig | Promise<UserConfig>;export declare interface ViteDevServer {    /**     * The resolved vite config object     */    config: ResolvedConfig;    /**     * A connect app instance.     * - Can be used to attach custom middlewares to the dev server.     * - Can also be used as the handler function of a custom http server     *   or as a middleware in any connect-style Node.js frameworks     *     * https://github.com/senchalabs/connect#use-middleware     */    middlewares: Connect.Server;    /**     * @deprecated use `server.middlewares` instead     */    app: Connect.Server;    /**     * native Node http server instance     * will be null in middleware mode     */    httpServer: http.Server | null;    /**     * chokidar watcher instance     * https://github.com/paulmillr/chokidar#api     */    watcher: FSWatcher;    /**     * web socket server with `send(payload)` method     */    ws: WebSocketServer;    /**     * Rollup plugin container that can run plugin hooks on a given file     */    pluginContainer: PluginContainer;    /**     * Module graph that tracks the import relationships, url to file mapping     * and hmr state.     */    moduleGraph: ModuleGraph;    /**     * Programmatically resolve, load and transform a URL and get the result     * without going through the http request pipeline.     */    transformRequest(url: string, options?: TransformOptions): Promise<TransformResult | null>;    /**     * Apply vite built-in HTML transforms and any plugin HTML transforms.     */    transformIndexHtml(url: string, html: string, originalUrl?: string): Promise<string>;    /**     * Util for transforming a file with esbuild.     * Can be useful for certain plugins.     *     * @deprecated import `transformWithEsbuild` from `vite` instead     */    transformWithEsbuild(code: string, filename: string, options?: EsbuildTransformOptions, inMap?: object): Promise<ESBuildTransformResult>;    /**     * Transform module code into SSR format.     * @experimental     */    ssrTransform(code: string, inMap: SourceMap | null, url: string): Promise<TransformResult | null>;    /**     * Load a given URL as an instantiated module for SSR.     */    ssrLoadModule(url: string, opts?: {        fixStacktrace?: boolean;    }): Promise<Record<string, any>>;    /**     * Returns a fixed version of the given stack     */    ssrRewriteStacktrace(stack: string): string;    /**     * Mutates the given SSR error by rewriting the stacktrace     */    ssrFixStacktrace(e: Error): void;    /**     * Start the server.     */    listen(port?: number, isRestart?: boolean): Promise<ViteDevServer>;    /**     * Stop the server.     */    close(): Promise<void>;    /**     * Print server urls     */    printUrls(): void;    /**     * Restart the server.     *     * @param forceOptimize - force the optimizer to re-bundle, same as --force cli flag     */    restart(forceOptimize?: boolean): Promise<void>;    /* Excluded from this release type: _optimizedDeps */    /* Excluded from this release type: _ssrExternals */    /* Excluded from this release type: _globImporters */    /* Excluded from this release type: _restartPromise */    /* Excluded from this release type: _forceOptimizeOnRestart */    /* Excluded from this release type: _pendingRequests */}export declare interface WatchOptions {    /**     * Indicates whether the process should continue to run as long as files are being watched. If     * set to `false` when using `fsevents` to watch, no more events will be emitted after `ready`,     * even if the process continues to run.     */    persistent?: boolean    /**     * ([anymatch](https://github.com/micromatch/anymatch)-compatible definition) Defines files/paths to     * be ignored. The whole relative or absolute path is tested, not just filename. If a function     * with two arguments is provided, it gets called twice per path - once with a single argument     * (the path), second time with two arguments (the path and the     * [`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats) object of that path).     */    ignored?: Matcher    /**     * If set to `false` then `add`/`addDir` events are also emitted for matching paths while     * instantiating the watching as chokidar discovers these file paths (before the `ready` event).     */    ignoreInitial?: boolean    /**     * When `false`, only the symlinks themselves will be watched for changes instead of following     * the link references and bubbling events through the link's path.     */    followSymlinks?: boolean    /**     * The base directory from which watch `paths` are to be derived. Paths emitted with events will     * be relative to this.     */    cwd?: string    /**     *  If set to true then the strings passed to .watch() and .add() are treated as literal path     *  names, even if they look like globs. Default: false.     */    disableGlobbing?: boolean    /**     * Whether to use fs.watchFile (backed by polling), or fs.watch. If polling leads to high CPU     * utilization, consider setting this to `false`. It is typically necessary to **set this to     * `true` to successfully watch files over a network**, and it may be necessary to successfully     * watch files in other non-standard situations. Setting to `true` explicitly on OS X overrides     * the `useFsEvents` default.     */    usePolling?: boolean    /**     * Whether to use the `fsevents` watching interface if available. When set to `true` explicitly     * and `fsevents` is available this supercedes the `usePolling` setting. When set to `false` on     * OS X, `usePolling: true` becomes the default.     */    useFsEvents?: boolean    /**     * If relying upon the [`fs.Stats`](https://nodejs.org/api/fs.html#fs_class_fs_stats) object that     * may get passed with `add`, `addDir`, and `change` events, set this to `true` to ensure it is     * provided even in cases where it wasn't already available from the underlying watch events.     */    alwaysStat?: boolean    /**     * If set, limits how many levels of subdirectories will be traversed.     */    depth?: number    /**     * Interval of file system polling.     */    interval?: number    /**     * Interval of file system polling for binary files. ([see list of binary extensions](https://gi     * thub.com/sindresorhus/binary-extensions/blob/master/binary-extensions.json))     */    binaryInterval?: number    /**     *  Indicates whether to watch files that don't have read permissions if possible. If watching     *  fails due to `EPERM` or `EACCES` with this set to `true`, the errors will be suppressed     *  silently.     */    ignorePermissionErrors?: boolean    /**     * `true` if `useFsEvents` and `usePolling` are `false`). Automatically filters out artifacts     * that occur when using editors that use "atomic writes" instead of writing directly to the     * source file. If a file is re-added within 100 ms of being deleted, Chokidar emits a `change`     * event rather than `unlink` then `add`. If the default of 100 ms does not work well for you,     * you can override it by setting `atomic` to a custom value, in milliseconds.     */    atomic?: boolean | number    /**     * can be set to an object in order to adjust timing params:     */    awaitWriteFinish?: AwaitWriteFinishOptions | boolean}export declare class WebSocket extends EventEmitter {    /** The connection is not yet open. */    static readonly CONNECTING: 0    /** The connection is open and ready to communicate. */    static readonly OPEN: 1    /** The connection is in the process of closing. */    static readonly CLOSING: 2    /** The connection is closed. */    static readonly CLOSED: 3    binaryType: 'nodebuffer' | 'arraybuffer' | 'fragments'    readonly bufferedAmount: number    readonly extensions: string    /** Indicates whether the websocket is paused */    readonly isPaused: boolean    readonly protocol: string    /** The current state of the connection */    readonly readyState:    | typeof WebSocket.CONNECTING    | typeof WebSocket.OPEN    | typeof WebSocket.CLOSING    | typeof WebSocket.CLOSED    readonly url: string    /** The connection is not yet open. */    readonly CONNECTING: 0    /** The connection is open and ready to communicate. */    readonly OPEN: 1    /** The connection is in the process of closing. */    readonly CLOSING: 2    /** The connection is closed. */    readonly CLOSED: 3    onopen: ((event: WebSocket.Event) => void) | null    onerror: ((event: WebSocket.ErrorEvent) => void) | null    onclose: ((event: WebSocket.CloseEvent) => void) | null    onmessage: ((event: WebSocket.MessageEvent) => void) | null    constructor(address: null)    constructor(    address: string | URL_2,    options?: WebSocket.ClientOptions | ClientRequestArgs    )    constructor(    address: string | URL_2,    protocols?: string | string[],    options?: WebSocket.ClientOptions | ClientRequestArgs    )    close(code?: number, data?: string | Buffer): void    ping(data?: any, mask?: boolean, cb?: (err: Error) => void): void    pong(data?: any, mask?: boolean, cb?: (err: Error) => void): void    send(data: any, cb?: (err?: Error) => void): void    send(    data: any,    options: {        mask?: boolean | undefined        binary?: boolean | undefined        compress?: boolean | undefined        fin?: boolean | undefined    },    cb?: (err?: Error) => void    ): void    terminate(): void    /**     * Pause the websocket causing it to stop emitting events. Some events can still be     * emitted after this is called, until all buffered data is consumed. This method     * is a noop if the ready state is `CONNECTING` or `CLOSED`.     */    pause(): void    /**     * Make a paused socket resume emitting events. This method is a noop if the ready     * state is `CONNECTING` or `CLOSED`.     */    resume(): void    // HTML5 WebSocket events    addEventListener(    method: 'message',    cb: (event: WebSocket.MessageEvent) => void,    options?: WebSocket.EventListenerOptions    ): void    addEventListener(    method: 'close',    cb: (event: WebSocket.CloseEvent) => void,    options?: WebSocket.EventListenerOptions    ): void    addEventListener(    method: 'error',    cb: (event: WebSocket.ErrorEvent) => void,    options?: WebSocket.EventListenerOptions    ): void    addEventListener(    method: 'open',    cb: (event: WebSocket.Event) => void,    options?: WebSocket.EventListenerOptions    ): void    removeEventListener(    method: 'message',    cb: (event: WebSocket.MessageEvent) => void    ): void    removeEventListener(    method: 'close',    cb: (event: WebSocket.CloseEvent) => void    ): void    removeEventListener(    method: 'error',    cb: (event: WebSocket.ErrorEvent) => void    ): void    removeEventListener(    method: 'open',    cb: (event: WebSocket.Event) => void    ): void    // Events    on(    event: 'close',    listener: (this: WebSocket, code: number, reason: Buffer) => void    ): this    on(event: 'error', listener: (this: WebSocket, err: Error) => void): this    on(    event: 'upgrade',    listener: (this: WebSocket, request: IncomingMessage) => void    ): this    on(    event: 'message',    listener: (    this: WebSocket,    data: WebSocket.RawData,    isBinary: boolean    ) => void    ): this    on(event: 'open', listener: (this: WebSocket) => void): this    on(    event: 'ping' | 'pong',    listener: (this: WebSocket, data: Buffer) => void    ): this    on(    event: 'unexpected-response',    listener: (    this: WebSocket,    request: ClientRequest,    response: IncomingMessage    ) => void    ): this    on(    event: string | symbol,    listener: (this: WebSocket, ...args: any[]) => void    ): this    once(    event: 'close',    listener: (this: WebSocket, code: number, reason: Buffer) => void    ): this    once(event: 'error', listener: (this: WebSocket, err: Error) => void): this    once(    event: 'upgrade',    listener: (this: WebSocket, request: IncomingMessage) => void    ): this    once(    event: 'message',    listener: (    this: WebSocket,    data: WebSocket.RawData,    isBinary: boolean    ) => void    ): this    once(event: 'open', listener: (this: WebSocket) => void): this    once(    event: 'ping' | 'pong',    listener: (this: WebSocket, data: Buffer) => void    ): this    once(    event: 'unexpected-response',    listener: (    this: WebSocket,    request: ClientRequest,    response: IncomingMessage    ) => void    ): this    once(    event: string | symbol,    listener: (this: WebSocket, ...args: any[]) => void    ): this    off(    event: 'close',    listener: (this: WebSocket, code: number, reason: Buffer) => void    ): this    off(event: 'error', listener: (this: WebSocket, err: Error) => void): this    off(    event: 'upgrade',    listener: (this: WebSocket, request: IncomingMessage) => void    ): this    off(    event: 'message',    listener: (    this: WebSocket,    data: WebSocket.RawData,    isBinary: boolean    ) => void    ): this    off(event: 'open', listener: (this: WebSocket) => void): this    off(    event: 'ping' | 'pong',    listener: (this: WebSocket, data: Buffer) => void    ): this    off(    event: 'unexpected-response',    listener: (    this: WebSocket,    request: ClientRequest,    response: IncomingMessage    ) => void    ): this    off(    event: string | symbol,    listener: (this: WebSocket, ...args: any[]) => void    ): this    addListener(    event: 'close',    listener: (code: number, reason: Buffer) => void    ): this    addListener(event: 'error', listener: (err: Error) => void): this    addListener(    event: 'upgrade',    listener: (request: IncomingMessage) => void    ): this    addListener(    event: 'message',    listener: (data: WebSocket.RawData, isBinary: boolean) => void    ): this    addListener(event: 'open', listener: () => void): this    addListener(event: 'ping' | 'pong', listener: (data: Buffer) => void): this    addListener(    event: 'unexpected-response',    listener: (request: ClientRequest, response: IncomingMessage) => void    ): this    addListener(event: string | symbol, listener: (...args: any[]) => void): this    removeListener(    event: 'close',    listener: (code: number, reason: Buffer) => void    ): this    removeListener(event: 'error', listener: (err: Error) => void): this    removeListener(    event: 'upgrade',    listener: (request: IncomingMessage) => void    ): this    removeListener(    event: 'message',    listener: (data: WebSocket.RawData, isBinary: boolean) => void    ): this    removeListener(event: 'open', listener: () => void): this    removeListener(event: 'ping' | 'pong', listener: (data: Buffer) => void): this    removeListener(    event: 'unexpected-response',    listener: (request: ClientRequest, response: IncomingMessage) => void    ): this    removeListener(    event: string | symbol,    listener: (...args: any[]) => void    ): this}export declare namespace WebSocket {    /**     * Data represents the raw message payload received over the WebSocket.     */    export type RawData = Buffer | ArrayBuffer | Buffer[]    /**     * Data represents the message payload received over the WebSocket.     */    export type Data = string | Buffer | ArrayBuffer | Buffer[]    /**     * CertMeta represents the accepted types for certificate & key data.     */    export type CertMeta = string | string[] | Buffer | Buffer[]    /**     * VerifyClientCallbackSync is a synchronous callback used to inspect the     * incoming message. The return value (boolean) of the function determines     * whether or not to accept the handshake.     */    export type VerifyClientCallbackSync = (info: {        origin: string        secure: boolean        req: IncomingMessage    }) => boolean    /**     * VerifyClientCallbackAsync is an asynchronous callback used to inspect the     * incoming message. The return value (boolean) of the function determines     * whether or not to accept the handshake.     */    export type VerifyClientCallbackAsync = (    info: { origin: string; secure: boolean; req: IncomingMessage },    callback: (    res: boolean,    code?: number,    message?: string,    headers?: OutgoingHttpHeaders    ) => void    ) => void    export interface ClientOptions extends SecureContextOptions {        protocol?: string | undefined        followRedirects?: boolean | undefined        generateMask?(mask: Buffer): void        handshakeTimeout?: number | undefined        maxRedirects?: number | undefined        perMessageDeflate?: boolean | PerMessageDeflateOptions | undefined        localAddress?: string | undefined        protocolVersion?: number | undefined        headers?: { [key: string]: string } | undefined        origin?: string | undefined        agent?: Agent | undefined        host?: string | undefined        family?: number | undefined        checkServerIdentity?(servername: string, cert: CertMeta): boolean        rejectUnauthorized?: boolean | undefined        maxPayload?: number | undefined        skipUTF8Validation?: boolean | undefined    }    export interface PerMessageDeflateOptions {        serverNoContextTakeover?: boolean | undefined        clientNoContextTakeover?: boolean | undefined        serverMaxWindowBits?: number | undefined        clientMaxWindowBits?: number | undefined        zlibDeflateOptions?:        | {            flush?: number | undefined            finishFlush?: number | undefined            chunkSize?: number | undefined            windowBits?: number | undefined            level?: number | undefined            memLevel?: number | undefined            strategy?: number | undefined            dictionary?: Buffer | Buffer[] | DataView | undefined            info?: boolean | undefined        }        | undefined        zlibInflateOptions?: ZlibOptions | undefined        threshold?: number | undefined        concurrencyLimit?: number | undefined    }    export interface Event {        type: string        target: WebSocket    }    export interface ErrorEvent {        error: any        message: string        type: string        target: WebSocket    }    export interface CloseEvent {        wasClean: boolean        code: number        reason: string        type: string        target: WebSocket    }    export interface MessageEvent {        data: Data        type: string        target: WebSocket    }    export interface EventListenerOptions {        once?: boolean | undefined    }    export interface ServerOptions {        host?: string | undefined        port?: number | undefined        backlog?: number | undefined        server?: Server | Server_2 | undefined        verifyClient?:        | VerifyClientCallbackAsync        | VerifyClientCallbackSync        | undefined        handleProtocols?: (        protocols: Set<string>,        request: IncomingMessage        ) => string | false        path?: string | undefined        noServer?: boolean | undefined        clientTracking?: boolean | undefined        perMessageDeflate?: boolean | PerMessageDeflateOptions | undefined        maxPayload?: number | undefined        skipUTF8Validation?: boolean | undefined        WebSocket?: typeof WebSocket.WebSocket | undefined    }    export interface AddressInfo {        address: string        family: string        port: number    }    // WebSocket Server    export class Server<T extends WebSocket = WebSocket> extends EventEmitter {        options: ServerOptions        path: string        clients: Set<T>        constructor(options?: ServerOptions, callback?: () => void)        address(): AddressInfo | string        close(cb?: (err?: Error) => void): void        handleUpgrade(        request: IncomingMessage,        socket: Duplex,        upgradeHead: Buffer,        callback: (client: T, request: IncomingMessage) => void        ): void        shouldHandle(request: IncomingMessage): boolean | Promise<boolean>        // Events        on(        event: 'connection',        cb: (this: Server<T>, socket: T, request: IncomingMessage) => void        ): this        on(event: 'error', cb: (this: Server<T>, error: Error) => void): this        on(        event: 'headers',        cb: (this: Server<T>, headers: string[], request: IncomingMessage) => void        ): this        on(event: 'close' | 'listening', cb: (this: Server<T>) => void): this        on(        event: string | symbol,        listener: (this: Server<T>, ...args: any[]) => void        ): this        once(        event: 'connection',        cb: (this: Server<T>, socket: T, request: IncomingMessage) => void        ): this        once(event: 'error', cb: (this: Server<T>, error: Error) => void): this        once(        event: 'headers',        cb: (this: Server<T>, headers: string[], request: IncomingMessage) => void        ): this        once(event: 'close' | 'listening', cb: (this: Server<T>) => void): this        once(        event: string | symbol,        listener: (this: Server<T>, ...args: any[]) => void        ): this        off(        event: 'connection',        cb: (this: Server<T>, socket: T, request: IncomingMessage) => void        ): this        off(event: 'error', cb: (this: Server<T>, error: Error) => void): this        off(        event: 'headers',        cb: (this: Server<T>, headers: string[], request: IncomingMessage) => void        ): this        off(event: 'close' | 'listening', cb: (this: Server<T>) => void): this        off(        event: string | symbol,        listener: (this: Server<T>, ...args: any[]) => void        ): this        addListener(        event: 'connection',        cb: (client: T, request: IncomingMessage) => void        ): this        addListener(event: 'error', cb: (err: Error) => void): this        addListener(        event: 'headers',        cb: (headers: string[], request: IncomingMessage) => void        ): this        addListener(event: 'close' | 'listening', cb: () => void): this        addListener(        event: string | symbol,        listener: (...args: any[]) => void        ): this        removeListener(event: 'connection', cb: (client: T) => void): this        removeListener(event: 'error', cb: (err: Error) => void): this        removeListener(        event: 'headers',        cb: (headers: string[], request: IncomingMessage) => void        ): this        removeListener(event: 'close' | 'listening', cb: () => void): this        removeListener(        event: string | symbol,        listener: (...args: any[]) => void        ): this    }    const WebSocketServer: typeof Server    export interface WebSocketServer extends Server {} // tslint:disable-line no-empty-interface    const WebSocket: typeof WebSocketAlias    export interface WebSocket extends WebSocketAlias {} // tslint:disable-line no-empty-interface    // WebSocket stream    export function createWebSocketStream(    websocket: WebSocket,    options?: DuplexOptions    ): Duplex}export declare const WebSocketAlias: typeof WebSocket;export declare interface WebSocketAlias extends WebSocket {}export declare interface WebSocketClient {    /**     * Send event to the client     */    send(payload: HMRPayload): void;    /**     * Send custom event     */    send(event: string, payload?: CustomPayload['data']): void;    /**     * The raw WebSocket instance     * @advanced     */    socket: WebSocket;}export declare type WebSocketCustomListener<T> = (data: T, client: WebSocketClient) => void;export declare interface WebSocketServer {    /**     * Get all connected clients.     */    clients: Set<WebSocketClient>;    /**     * Boardcast events to all clients     */    send(payload: HMRPayload): void;    /**     * Send custom event     */    send<T extends string>(event: T, payload?: InferCustomEventPayload<T>): void;    /**     * Disconnect all clients and terminate the server.     */    close(): Promise<void>;    /**     * Handle custom event emitted by `import.meta.hot.send`     */    on: WebSocket.Server['on'] & {        <T extends string>(event: T, listener: WebSocketCustomListener<InferCustomEventPayload<T>>): void;    };    /**     * Unregister event listener.     */    off: WebSocket.Server['off'] & {        (event: string, listener: Function): void;    };}export { }
 |