/// import * as rollup from 'rollup'; export interface ProjectPaths { root: string; private: string; packages?: string; playground: string; nodeModules: string; app: string; components: string; sections: string; styles: string; build: string; cache: string; tests: string; } export interface Paths extends ProjectPaths { tsConfig: string; sewingKit: string; sewingKitNodeModules: string; defaultPostCSSConfig: string; } export interface CDNPlugin { plugin: 'cdn'; url: string; } export interface EntryPlugin { plugin: 'entry'; entries: string | string[] | { [key: string]: string | string[]; }; } export interface ExperimentsPlugin { plugin: 'experiments'; fastStartup: boolean; optimizeLodash: boolean; railsWithNodeServer: boolean; reactLoadable: boolean; } export interface ExternalsPlugin { plugin: 'externals'; externals: { [key: string]: string; }; } export interface JestPlugin { plugin: 'jest'; configure(config: jest.InitialOptions): jest.InitialOptions; } export interface GraphQLRemoteSchemaConfig { production: string; development?: string; } export interface GraphQLPlugin { plugin: 'graphql'; schemas: Map; customScalars?: { [key: string]: { name: string; package: string; }; }; } export interface ManifestPlugin { plugin: 'manifest'; filename: string; } export interface ReactLoadablePlugin { plugin: 'reactLoadableManifest'; } export interface PathsPlugin { plugin: 'paths'; paths: Partial; } export interface SassPlugin { plugin: 'sass'; autoInclude: string[]; autoImportPolaris: ('components' | 'global')[] | boolean; } export interface WebpackPlugin { plugin: 'webpack'; configure(config: { [key: string]: any; }): object; } export interface VendorsPlugin { plugin: 'vendors'; modules: string[]; } export interface DevServerPlugin { plugin: 'devServer'; port?: number; ip?: string; } export interface RollupPlugin { plugin: 'rollup'; configure?: { input?(config: rollup.RollupOptions): rollup.RollupOptions; output?(config: rollup.OutputOptions): rollup.OutputOptions; }; } export declare type Plugin = EntryPlugin | ExperimentsPlugin | ExternalsPlugin | CDNPlugin | GraphQLPlugin | ManifestPlugin | ReactLoadablePlugin | JestPlugin | PathsPlugin | SassPlugin | WebpackPlugin | VendorsPlugin | DevServerPlugin | RollupPlugin; export interface PluginMap { cdn: CDNPlugin; entry: EntryPlugin; experiments: ExperimentsPlugin; externals: ExternalsPlugin; graphql: GraphQLPlugin; jest: JestPlugin; manifest: ManifestPlugin; reactLoadableManifest: ManifestPlugin; paths: PathsPlugin; sass: SassPlugin; webpack: WebpackPlugin; vendors: VendorsPlugin; devServer: DevServerPlugin; rollup: RollupPlugin; }