import { IBundleWriteResponse } from '../bundle/Bundle';
import { Context } from '../core/Context';
import { FuseBoxLogAdapter } from '../fuse-log/FuseBoxLogAdapter';
export interface IWebIndexConfig {
    enabled?: boolean;
    target?: string;
    template?: string;
    distFileName?: string;
    publicPath?: string;
    embedIndexedBundles?: boolean;
}
export interface IWebIndexInterface {
    isDisabled?: boolean;
    addBundleContent?: (content: string) => void;
    resolve?: (userPath: string) => string;
    generate?: (bundles: Array<IBundleWriteResponse>) => void;
}
export declare function replaceWebIndexStrings(str: string, keys: {
    [key: string]: any;
}): string;
export declare function getEssentialWebIndexParams(config: IWebIndexConfig | boolean, log: FuseBoxLogAdapter): {
    distFileName: string;
    publicPath: string;
    templateContent: string;
    templatePath: string;
};
export declare function createWebIndex(ctx: Context): IWebIndexInterface;
