import { ModuleRunner } from 'vite/module-runner';
import type { InlineConfig, Manifest, ViteDevServer, ServerModuleRunnerOptions } from 'vite';
import type { AdonisViteElement, ViteOptions } from './types.js';
/**
 * Vite class exposes the APIs to generate tags and URLs for
 * assets processed using vite.
 */
export declare class Vite {
    #private;
    protected isViteRunning: boolean;
    constructor(isViteRunning: boolean, options: ViteOptions);
    /**
     * Generate tags for the entry points
     */
    generateEntryPointsTags(entryPoints: string[] | string, attributes?: Record<string, any>): Promise<AdonisViteElement[]>;
    /**
     * Returns the explicitly configured assetsUrl
     */
    assetsUrl(): string | undefined;
    /**
     * Returns path to a given asset file using the manifest file
     */
    assetPath(asset: string): string;
    /**
     * Returns the manifest file contents
     *
     * @throws Will throw an exception when running in dev
     */
    manifest(): Manifest;
    /**
     * Create the Vite Dev Server and runtime
     *
     * We lazy load the APIs to avoid loading it in production
     * since we don't need it
     */
    createDevServer(options?: InlineConfig): Promise<void>;
    /**
     * Create a serverModuleRunner instance
     * Will not be available when running in production since
     * it needs the Vite Dev server
     */
    createModuleRunner(options?: ServerModuleRunnerOptions): Promise<ModuleRunner>;
    /**
     * Stop the Vite Dev server
     */
    stopDevServer(): Promise<void>;
    /**
     * Get the Vite Dev server instance
     * Will not be available when running in production
     */
    getDevServer(): ViteDevServer | undefined;
    /**
     * Returns the script needed for the HMR working with React
     */
    getReactHmrScript(attributes?: Record<string, any>): AdonisViteElement | null;
}
