import VirtualModulePlugin from 'webpack-virtual-modules';
import { KnapsackRendererBase } from './renderer-base';
import { KnapsackTemplateRendererBase, KnapsackConfig } from '../schemas/knapsack-config';
import { KnapsackPatternTemplate, KnapsackTemplateDemo } from '../schemas/patterns';
interface KsEntryItem {
    id: string;
    path: string;
    name: string;
    alias?: string;
}
interface KsEntryTemplate extends KsEntryItem {
    demos?: KsEntryItem[];
}
declare type KsEntryData = {
    patterns: {
        id: string;
        templates: KsEntryTemplate[];
    }[];
    extras?: KsEntryItem[];
};
declare type KsWebpackEntriesManifest = {
    entrypoints: {
        [entryId: string]: string[];
    };
};
export declare class KnapsackRendererWebpackBase extends KnapsackRendererBase implements KnapsackTemplateRendererBase {
    webpack: typeof import('webpack');
    webpackConfig: import('webpack').Configuration;
    entryData: KsEntryData;
    publicPath: string;
    language: string;
    restartWebpackWatch: () => void;
    webpackCompiler: import('webpack').Compiler;
    entriesManifest: KsWebpackEntriesManifest;
    webpackWatcher: import('webpack').Compiler.Watching;
    patterns: import('@knapsack/app/src/server/patterns').Patterns;
    virtualModules: VirtualModulePlugin;
    extraScripts: string[];
    private webpackEntryPathsManifest;
    constructor({ id, extension, language, webpackConfig, webpack, extraScripts, }: {
        id: string;
        extension: string;
        language: string;
        webpackConfig: import('webpack').Configuration;
        webpack: typeof import('webpack');
        extraScripts?: string[];
    });
    createWebpackCompiler(entryData: KsEntryData): void;
    createWebpackEntryDataFromPatterns(patterns: import('@knapsack/app/src/server/patterns').Patterns): KsEntryData;
    getReactName({ pattern, template, demo, }: {
        pattern: KnapsackPattern;
        template: KnapsackPatternTemplate;
        demo?: KnapsackTemplateDemo;
    }): string;
    init(opt: {
        config: KnapsackConfig;
        patterns: import('@knapsack/app/src/server/patterns').Patterns;
        cacheDir: string;
    }): Promise<void>;
    setManifest(): Promise<void>;
    setManifestSync(): void;
    getWebPackEntryPath(id: string): string[];
    build(): Promise<void>;
    webpackWatch(): import('webpack').Compiler.Watching;
    watch({ templatePaths }: {
        templatePaths: string[];
    }): Promise<void>;
    onChange(): void;
}
export {};
//# sourceMappingURL=renderer-webpack-base.d.ts.map