import { Config as JestConfig } from '@jest/types'; import { IntrospectionQuery } from 'graphql'; import { ReactServerPlugin as ReactServerWebpackPlugin } from '@shopify/react-server/webpack-plugin'; export declare type Sequencer = 'parallel' | 'default' | 'random'; export interface ProjectPaths { root: string; private: string; playground: string; nodeModules: string; app: string; components: string; sections: string; styles: string; build: string; buildEnvRoot: string; cache: string; tests: string; sourceRoot: string; packages?: string; } export interface DupeProtectionOptions { allowlist: Map; blocklist: (string | RegExp)[]; } export interface DupeProtectionPlugin { plugin: 'dupeCheck'; configure: (defaultConfig: DupeProtectionOptions) => DupeProtectionOptions; } export interface Paths extends ProjectPaths { serviceWorkerTSConfig: string; tsConfig: string; sewingKit: string; sewingKitNodeModules: 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'; optimizeLodash: boolean; dartSassLoader: boolean; experimentalUseImportModule: boolean; webpackCacheUnaffected: boolean; webpackLayers: boolean; webpackBackCompat: boolean; webpackTerserPluginMinify: 'terser' | 'esbuild' | 'swc'; webpackDevelopmentCache: boolean; } export interface FeaturesPlugin { plugin: 'features'; babelReactRuntime: 'classic' | 'automatic'; babelTransformRuntime: boolean; babelUseBuiltins: 'entry' | 'usage' | false; jestTestRunner: 'jest-jasmine2' | 'jest-circus'; jestTestEnvironment: 'jsdom' | 'node'; webpackIncludeCaseSensitivePathsPlugin: boolean; webpackIncludePersistedGraphQLPlugin: boolean; webpackCacheVersion: string; disableGraphQL: boolean; } export interface ExternalsPlugin { plugin: 'externals'; externals: { [key: string]: string; }; } export interface IntrospectionResult { data: IntrospectionQuery; extensions?: { [key: string]: unknown; }; errors?: any; } export interface JestPlugin { plugin: 'jest'; configure(config: JestConfig.InitialOptions): JestConfig.InitialOptions; } export interface GraphQLRemoteSchemaConfig { production: string; development?: string; localGraphQLFilePath?: string; } export interface GraphQLPlugin { plugin: 'graphql'; schemas: Map; simple?: boolean; 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[]; } export interface WebpackPlugin { plugin: 'webpack'; configure(config: { [key: string]: any; }): { [key: string]: unknown; }; } export interface VendorsPlugin { plugin: 'vendors'; modules: string[]; } export interface DevServerPlugin { plugin: 'devServer'; port?: number; ip?: string; } declare type ConstructorArguments = T extends { new (...args: infer U): any; } ? U : never; export declare type ReactServerWebpackPluginConfig = NonNullable[0]>; export interface ReactServerPlugin { plugin: 'reactServer'; config?(config: ReactServerWebpackPluginConfig): ReactServerWebpackPluginConfig; } export declare type Plugin = EntryPlugin | ExperimentsPlugin | FeaturesPlugin | ExternalsPlugin | CDNPlugin | GraphQLPlugin | ManifestPlugin | ReactLoadablePlugin | JestPlugin | PathsPlugin | SassPlugin | WebpackPlugin | VendorsPlugin | DevServerPlugin | DupeProtectionPlugin | ReactServerPlugin; export interface PluginMap { cdn: CDNPlugin; entry: EntryPlugin; experiments: ExperimentsPlugin; features: FeaturesPlugin; externals: ExternalsPlugin; graphql: GraphQLPlugin; jest: JestPlugin; manifest: ManifestPlugin; reactLoadableManifest: ManifestPlugin; paths: PathsPlugin; sass: SassPlugin; webpack: WebpackPlugin; vendors: VendorsPlugin; devServer: DevServerPlugin; reactServer: ReactServerPlugin; dupeCheck: DupeProtectionPlugin; } export {}; //# sourceMappingURL=types.d.ts.map