import { StorybookConfig as StorybookConfig$2, Options, CompatibleString, TypescriptOptions as TypescriptOptions$1 } from 'storybook/internal/types'; import { StorybookConfigWebpack, BuilderOptions, TypescriptOptions } from '@storybook/builder-webpack5'; type RulesConfig = any; type ModuleConfig = { rules?: RulesConfig[]; }; type ResolveConfig = { extensions?: string[]; mainFields?: (string | string[])[] | undefined; alias?: any; }; interface WebpackConfiguration { plugins?: any[]; module?: ModuleConfig; resolve?: ResolveConfig; optimization?: any; devtool?: false | string; } type StorybookConfig$1 = StorybookConfig$2 & { /** * Modify or return a custom Webpack config after the Storybook's default configuration has run * (mostly used by addons). */ webpack?: (config: TWebpackConfiguration, options: Options) => TWebpackConfiguration | Promise; /** Modify or return a custom Webpack config after every addon has run. */ webpackFinal?: (config: TWebpackConfiguration, options: Options) => TWebpackConfiguration | Promise; }; type FrameworkName = CompatibleString<'@storybook/angular'>; type BuilderName = CompatibleString<'@storybook/builder-webpack5'>; type FrameworkOptions = AngularOptions & { builder?: BuilderOptions; }; type StorybookConfigFramework = { framework: FrameworkName | { name: FrameworkName; options: FrameworkOptions; }; core?: StorybookConfig$1['core'] & { builder?: BuilderName | { name: BuilderName; options: BuilderOptions; }; }; typescript?: Partial & StorybookConfig$1['typescript']; }; /** The interface for Storybook configuration in `main.ts` files. */ type StorybookConfig = Omit & StorybookConfigWebpack & StorybookConfigFramework; interface AngularOptions { enableIvy?: boolean; } declare function defineMain(config: StorybookConfig): StorybookConfig; export { type StorybookConfig, defineMain };