import { HtmlTagDescriptor, PluginOption } from 'vite';
import { Options as Options$1 } from 'ejs';
import historyApiFallback from 'connect-history-api-fallback';

interface InjectOptions {
    /**
     *  @description Data injected into the html template
     */
    data?: Record<string, any>;
    /**
     * @description Tag description
     */
    tags?: HtmlTagDescriptor[];
    /**
     * @description esj options configuration
     */
    ejsOptions?: Options$1;
}
interface PageOption {
    entry?: string;
    filename?: string;
    template: string;
    inject?: InjectOptions;
}
declare type Pages = Record<string, PageOption>;
declare type Rewrite = historyApiFallback.Rewrite;
interface Options {
    /**
     * @description Page options
     */
    pages?: Pages;
    /**
     * @description Page entry
     */
    entry?: string;
    /**
     * @description Template path
     */
    template?: string;
    /**
     * @description Inject options
     */
    inject?: InjectOptions;
    /**
     * @description Implement path rewriting based on connect-history-api-fallback
     */
    historyApiFallback?: historyApiFallback.Options;
}

declare function createPlugin(options: Options): PluginOption;

export { InjectOptions, Options, PageOption, Pages, Rewrite, createPlugin as default };
