import { StorybookConfigVite, BuilderOptions } from '@storybook/builder-vite'; import * as ts from 'typescript'; import { StorybookConfig as StorybookConfig$1, CompatibleString } from 'storybook/internal/types'; interface PropItem { name: string; required: boolean; type: PropItemType; description: string; defaultValue: any; parent?: ParentType; declarations?: ParentType[]; tags?: {}; } interface Component { name: string; } interface PropItemType { name: string; value?: any; raw?: string; } interface ParentType { name: string; fileName: string; } declare type PropFilter = (props: PropItem, component: Component) => boolean; declare type ComponentNameResolver = (exp: ts.Symbol, source: ts.SourceFile) => string | undefined | null | false; interface ParserOptions { propFilter?: StaticPropFilter | PropFilter; componentNameResolver?: ComponentNameResolver; shouldExtractLiteralValuesFromEnum?: boolean; shouldRemoveUndefinedFromOptional?: boolean; shouldExtractValuesFromUnion?: boolean; shouldSortUnions?: boolean; skipChildrenPropWithoutDoc?: boolean; savePropValueAsString?: boolean; shouldIncludePropTagMap?: boolean; shouldIncludeExpression?: boolean; customComponentTypes?: string[]; } interface StaticPropFilter { skipPropsWithName?: string[] | string; skipPropsWithoutDoc?: boolean; } type FrameworkName = CompatibleString<'storybook-solidjs-vite'>; type BuilderName = CompatibleString<'@storybook/builder-vite'>; type FrameworkOptions = { builder?: BuilderOptions; docgen?: boolean | ParserOptions; }; type StorybookConfigFramework = { framework: FrameworkName | { name: FrameworkName; options: FrameworkOptions; }; core?: StorybookConfig$1['core'] & { builder?: BuilderName | { name: BuilderName; options: BuilderOptions; }; }; features?: StorybookConfig$1['features'] & { /** * Enable the experimental `.test` function in CSF Next * * @see https://storybook.js.org/docs/10/api/main-config/main-config-features#experimentalTestSyntax */ experimentalTestSyntax?: boolean; }; }; /** The interface for Storybook configuration in `main.ts` files. */ type StorybookConfig = Omit & StorybookConfigVite & StorybookConfigFramework; export type { FrameworkOptions as F, StorybookConfig as S };