import { IModule } from "../interfaces/modules"; import { IWebpackStats, IWebpackStatsAsset, IWebpackStatsAssets, IWebpackStatsChunk, IWebpackStatsModules } from "../interfaces/webpack-stats"; export interface IActionConstructor { stats: IWebpackStats; ignoredPackages?: (string | RegExp)[]; } export interface IModulesByAsset { [asset: string]: { asset: IWebpackStatsAsset; mods: IModule[]; }; } export declare const nodeModulesParts: (name: string) => string[]; export declare const _isNodeModules: (name: string) => boolean; export declare const _normalizeWebpackPath: (identifier: string, name?: string | undefined) => string; export declare const _getBaseName: (name: string) => string | null; export declare abstract class Action { stats: IWebpackStats; private _data?; private _modules?; private _assets?; private _template?; private _ignoredPackages; constructor({ stats, ignoredPackages }: IActionConstructor); validate(): Promise; getData(): Promise; get modules(): IModule[]; shouldBail(): Promise; protected ignorePackage(baseName: string): boolean; protected getSourceMods(mods: IWebpackStatsModules, parentChunks?: IWebpackStatsChunk[]): IModule[]; get assets(): IModulesByAsset; protected getSourceAssets(assets: IWebpackStatsAssets): IModulesByAsset; get template(): ITemplate; protected abstract _getData(): Promise; protected abstract _createTemplate(): ITemplate; } export declare type IAction = Action; interface ITemplateConstructor { action: IAction; } export declare enum TemplateFormat { json = "json", text = "text", tsv = "tsv" } export interface ITemplate { json(): Promise; text(): Promise; tsv(): Promise; render(format: TemplateFormat): Promise; } export declare abstract class Template implements ITemplate { protected action: IAction; constructor({ action }: ITemplateConstructor); json(): Promise; abstract text(): Promise; abstract tsv(): Promise; render(format: TemplateFormat): Promise; protected trim(str: string, num: number): string; } export {};