@nexo-labs/payload-lexical-blocks-builder 1.6.8 → 1.6.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderer-DXFuGXD5.d.mts","names":["DOMExportOutput","LexicalPrivateDOM","NodeKey","SerializedLexicalNode","BaseSelection","RangeSelection","KlassConstructor","LexicalEditor","LexicalUpdateJSON","Spread","TextFormatType","TextNode","LexicalNode","SerializedElementNode","T","Array","ElementFormatType","ElementNode","ElementDOMSlot","ElementType","HTMLElement","Node","ChildNode","Exclude","indexPath","$isElementNode","LexicalNode","SerializedLexicalNode","SerializedElementNode","ElementNode","SerializedRootNode","T","RootNode","N","HTMLElement","$createRootNode","$isRootNode","LexicalEditor","NodeMap","SerializedLexicalNode","BaseSelection","SerializedRootNode","SerializedEditorState","T","editorStateHasDirtySelection","EditorState","cloneEditorState","createEmptyEditorState","EditorStateReadOptions","V","ElementFormatType","TextDetailType","TextFormatType","TextModeType","DOM_ELEMENT_TYPE","DOM_TEXT_TYPE","DOM_DOCUMENT_TYPE","DOM_DOCUMENT_FRAGMENT_TYPE","NO_DIRTY_NODES","HAS_DIRTY_NODES","FULL_RECONCILE","IS_NORMAL","IS_TOKEN","IS_SEGMENTED","IS_BOLD","IS_ITALIC","IS_STRIKETHROUGH","IS_UNDERLINE","IS_CODE","IS_SUBSCRIPT","IS_SUPERSCRIPT","IS_HIGHLIGHT","IS_LOWERCASE","IS_UPPERCASE","IS_CAPITALIZE","IS_ALL_FORMATTING","IS_DIRECTIONLESS","IS_UNMERGEABLE","IS_ALIGN_LEFT","IS_ALIGN_CENTER","IS_ALIGN_RIGHT","IS_ALIGN_JUSTIFY","IS_ALIGN_START","IS_ALIGN_END","NON_BREAKING_SPACE","COMPOSITION_SUFFIX","DOUBLE_LINE_BREAK","COMPOSITION_START_CHAR","RTL_REGEX","RegExp","LTR_REGEX","TEXT_TYPE_TO_FORMAT","Record","DETAIL_TYPE_TO_DETAIL","ELEMENT_TYPE_TO_FORMAT","Exclude","ELEMENT_FORMAT_TO_TYPE","TEXT_MODE_TO_TYPE","TEXT_TYPE_TO_MODE","NODE_STATE_KEY","PROTOTYPE_CONFIG_METHOD","EditorState","SerializedEditorState","DOMConversion","DOMConversionMap","DOMExportOutput","DOMExportOutputMap","NodeKey","LexicalNode","SharedNodeState","UpdateTag","Spread","T1","T2","Omit","KlassConstructor","Cls","GenericConstructor","InstanceType","k","T","Klass","EditorThemeClassName","TextNodeThemeClasses","EditorUpdateOptions","UIEvent","Event","EditorSetOptions","EditorFocusOptions","EditorThemeClasses","Record","Array","EditorConfig","LexicalNodeReplacement","HTMLConfig","LexicalNodeConfig","CreateEditorArgs","ReadonlyArray","ErrorHandler","LexicalEditor","RegisteredNodes","RegisteredNode","Map","Transform","Set","Error","MutationListeners","MutationListener","MutatedNodes","NodeMutation","MutationListenerOptions","UpdateListenerPayload","IntentionallyMarkedAsDirtyElement","UpdateListener","DecoratorListener","RootListener","HTMLElement","TextContentListener","CommandListener","P","EditableListener","CommandListenerPriority","COMMAND_PRIORITY_EDITOR","COMMAND_PRIORITY_LOW","COMMAND_PRIORITY_NORMAL","COMMAND_PRIORITY_HIGH","COMMAND_PRIORITY_CRITICAL","LexicalCommand","TPayload","CommandPayloadType","TCommand","Commands","Listeners","SetListeners","K","TransformerType","DOMConversionCache","Node","SerializedEditor","resetEditor","createEditor","MutationObserver","Window","HTMLDivElement","EditorConfig","Klass","KlassConstructor","LexicalEditor","BaseSelection","RangeSelection","DecoratorNode","ElementNode","NODE_STATE_KEY","PROTOTYPE_CONFIG_METHOD","NodeState","NodeStateJSON","Prettify","RequiredNodeStateConfig","NodeMap","NodeKey","LexicalNode","Map","SerializedLexicalNode","Record","StaticNodeConfigValue","T","Type","DOMConversionMap","BaseStaticNodeConfig","StaticNodeConfig","AnyStaticNodeConfigValue","StaticNodeConfigRecord","Config","GetStaticNodeType","ReturnType","LexicalExportJSON","Omit","LexicalUpdateJSON","LexicalPrivateDOM","HTMLBRElement","HTMLImageElement","$removeNode","DOMConversionProp","HTMLElement","DOMConversion","DOMConversionPropByTagName","K","HTMLElementTagNameMap","DOMConversionTagNameMap","NodeName","buildImportMap","DOMConversionFn","DOMConversionOutput","DOMChildConversion","Array","DOMExportOutputMap","DOMExportOutput","DocumentFragment","Text","N","insertRangeAfter","Renderer","Renderer$1","ProjectAnnotations","ProjectAnnotations$1","NormalizedProjectAnnotations","ComponentAnnotations","ComponentAnnotations$1","Args","Args$1","NormalizedComponentAnnotations","StoryAnnotations","StoryAnnotations$1","NormalizedStoryAnnotations","_0","sideEffect","SimplifyOptions","Flatten","AnyType","Options","KeyType","Simplify","RemoveIndexSignature","ObjectType","Record","UnionToIntersection","Union","SBBaseType","SBScalarType","SBArrayType","SBType","SBObjectType","SBEnumType","SBIntersectionType","SBUnionType","SBOtherType","StoryId","ComponentId","ComponentTitle","StoryName","StoryKind","Tag","StoryIdentifier","Parameters","StrictParameters","ControlType","ConditionalTest","ConditionalValue","Conditional","ControlBase","Report","ReportingAPI","Control","InputType","StrictInputType","StrictArgs","ArgTypes","TArgs","StrictArgTypes","Globals","GlobalTypes","StrictGlobalTypes","Canvas","Promise","AnyFramework","StoryContextForEnhancers","TRenderer","ArgsEnhancer","ArgTypesEnhancer","StoryContextUpdate","ViewMode","LoaderFunction","StoryContextForLoaders","Awaitable","T","PromiseLike","CleanupCallback","BeforeAll","BeforeEach","StoryContext","AfterEach","AbortSignal","StoryFn","StepFunction","Required","PlayFunctionContext","StepLabel","PlayFunction","PartialStoryFn","Partial","LegacyStoryFn","ArgsStoryFn","DecoratorFunction","DecoratorApplicator","StepRunner","BaseAnnotations","StoryDescriptor$1","RegExp","TRequiredArgs","Omit","LegacyAnnotatedStoryFn","LegacyStoryAnnotationsOrFn","AnnotatedStoryFn","StoryAnnotationsOrFn","ArgsFromMeta","Meta","RArgs","Decorators","DecoratorsArgs","Loaders","LoaderArgs","includeConditionalArg","Preview","__definePreview","isPreview","Story","isMeta","isStory","sanitize","toId","storyNameFromExport","StoryDescriptor","IncludeExcludeOptions","isExportStory","includeStories","excludeStories","SeparatorOptions","parseKind","rootSeparator","groupSeparator","combineTags","Tag","Tag$1","Parameters","StoryId","StoryName","ComponentTitle","Args","ArgTypes","ComponentId","StoryKind","Globals","GlobalTypes","InputType","StoryContext","PartialStoryFn","LegacyStoryFn","ArgsStoryFn","StoryFn","DecoratorFunction","LoaderFunction","Renderer","Renderer$1","ViewMode","ViewMode$1","ProjectAnnotations","ProjectAnnotations$2","StrictArgTypes","StrictGlobalTypes","StepRunner","BeforeAll","ComponentAnnotations","StoryAnnotations","StoryContextForEnhancers","CleanupCallback","Canvas","StoryIdentifier","StoryAnnotationsOrFn","AnnotatedStoryFn","AfterEach","ArgTypesEnhancer","ArgsEnhancer","ArgsFromMeta","BaseAnnotations","BaseProjectAnnotations","BeforeEach","Conditional","DecoratorApplicator","IncludeExcludeOptions","LegacyAnnotatedStoryFn","LegacyStoryAnnotationsOrFn","PlayFunction","PlayFunctionContext","SBArrayType","SBEnumType","SBIntersectionType","SBObjectType","SBOtherType","SBScalarType","SBType","SBUnionType","SeparatorOptions","StepFunction","StepLabel","StoryContextForLoaders","StoryContextUpdate","StrictArgs","StrictInputType","ReactElement","FC","ReactNode","PropsWithChildren","Addon_TestProviderType","Addon_TestProviderType$1","NormalizedProjectAnnotations","NormalizedProjectAnnotations$1","ProjectAnnotations$1","ComposedStoryFn","ComposedStoryFn$1","Server","IncomingMessage","ServerResponse","Server$1","Channel","Channel$1","DateNow","TestProviderConfig","TestingModuleProgressReportProgress","_1","sideEffect","WrappedStoryRef","UnwrappedJSXStoryRef","UnwrappedImportStoryRef","_2","Promise","Report","T","ReporterAPI","Pathname","Search","Hash","Key","Path$1","Location","To","Partial","NavigateOptions$1","StoryData","Other","NavigateOptions","NavigateFunction","RouterData","RenderData","Pick","ThemeVars","ThemeVarsBase","ThemeVarsColors","ChannelHandler","ChannelEvent","ChannelTransport","Listener","ChannelArgsSingle","ChannelArgsMulti","Options$1","Primitive","_3","LiteralUnion","LiteralType","BaseType","Record","PackageJson$1","ExportCondition","Exports","ExportConditions","Array","WorkspacePattern","WorkspaceConfig","Dependency","BugsLocation","Person","Imports","DirectoryLocations","Scripts","PublishConfig","PackageJsonStandard","NonStandardEntryPoints","TypeScriptConfiguration","YarnConfiguration","JSPMConfiguration","FileSystemCacheOptions","CacheItem","CacheSetOptions","BufferEncoding","FileSystemCache","ExportName","MetaId","StoriesSpecifier","StoriesEntry","NormalizedStoriesSpecifier","Required","RegExp","IndexerOptions","IndexedStory","IndexedCSFFile","BaseIndexer","Indexer","IndexInput","BaseIndexEntry","Path","StoryIndexEntry","DocsIndexEntry","IndexEntry","IndexInputStats","BaseIndexInput","StoryIndexInput","DocsIndexInput","V3CompatIndexEntry","Omit","StoryIndexV2","StoryIndexV3","StoryIndex","BuilderName","RendererName","ServerChannel","CoreConfig","DirectoryMapping","Presets","TypescriptOptions","Options","Preset","StorybookConfigRaw","NonNullable","LoadedPreset","PresetConfig","Ref","VersionCheck","Stats","BuilderResult","process","hrtime","ReturnType","PackageJson","LoadOptions","CLIOptions","BuilderOptions","StorybookConfigOptions","TestBuildConfig","Middleware","Error","ServerApp","Builder","Config","BuilderStats","Entry","CoreCommon_StorybookRefs","DocsOptions","TestBuildFlags","TagOptions","TagsOptions","StorybookConfig","PresetValue","PresetProperty","K","TStorybookConfig","PresetPropertyFn","TOptions","CoreCommon_ResolvedAddonPreset","PreviewAnnotation","CoreCommon_ResolvedAddonVirtual","CoreCommon_OptionsEntry","CoreCommon_AddonEntry","CoreCommon_AddonInfo","CoreCommon_StorybookInfo","CompatibleString","API_BaseEntry","API_RootEntry","API_GroupEntry","API_ComponentEntry","API_DocsEntry","API_StoryEntry","API_LeafEntry","API_HashEntry","API_IndexHash","API_PreparedIndexEntry","API_PreparedStoryIndex","API_OptionsData","API_ReleaseNotes","API_Settings","API_Version","API_UnknownEntries","API_Versions$1","API_StatusValue","API_StatusObject","API_StatusState","API_StatusUpdate","API_FilterFunction","SetStoriesStory","API_ViewMode","SetStoriesStoryData","SetStoriesPayload","SetGlobalsPayload","GlobalsUpdatedPayload","StoryPreparedPayload","DocsPreparedPayload","OrString$1","API_RenderOptions","Addon_RenderOptions","API_RouteOptions","API_MatchOptions","API_StateMerger","S","API_ProviderData","API","API_Provider","API_IframeRenderer","API_SidebarOptions","API_StoryMapper","API_UIOptions","API_Layout","API_ActiveTabsType","API_PanelPositions","API_UI","OnClearOptions","OnClickOptions","DeprecatedIconType","API_Notification","React","API_Versions","API_SetRefData","API_ComposedRef","API_LoadedRefData","API_ComposedRefUpdate","API_Refs","API_RefId","API_RefUrl","Addon_Types","Addon_TypesEnum","experimental_PAGE","experimental_SIDEBAR_BOTTOM","experimental_TEST_PROVIDER","experimental_SIDEBAR_TOP","Exclude","Addon_ArgType","TArg","Addons_ArgTypes","TArgs","key","Addon_Comparator","Addon_StorySortMethod","Addon_StorySortObjectParameter","IndexEntryLegacy","Addon_StorySortComparator","Addon_StorySortParameter","Addon_StorySortComparatorV7","Addon_StorySortParameterV7","Addon_OptionsParameter","Object","Addon_OptionsParameterV7","Addon_StoryContext","TRenderer","Addon_StoryContextUpdate","Addon_ReturnTypeFramework","Addon_PartialStoryFn","Addon_LegacyStoryFn","Addon_ArgsStoryFn","Addon_StoryFn","Addon_DecoratorFunction","StoryFnReturnType","Addon_LoaderFunction","Addon_WrapperSettings","Addon_StoryWrapper","Addon_MakeDecoratorResult","Addon_AddStoryArgs","Addon_ClientApiAddon","Addon_Type","Addon_StoryApi","Addon_ClientApiAddons","Addon_ClientApiReturnFn","Addon_ClientStoryApi","Addon_LoadFn","Addon_RequireContext","Addon_Loadable","Addon_BaseDecorators","Addon_BaseAnnotations","Addon_Annotations","Addon_BaseMeta","ComponentType","Addon_BaseStoryObject","Addon_BaseStoryFn","BaseStory","Addon_BaseType","Addon_PageType","Addon_WrapperType","Addon_SidebarBottomType","Addon_SidebarTopType","Addon_TestProviderState","PREVIEW","Details","Addon_TypeBaseNames","Addon_TypesMapping","Addon_Loader","Addon_Loaders","Addon_Collection","Addon_Elements","Addon_ToolbarConfig","Addon_Config","OrString","Layout","StorybookParameters","StorybookInternalParameters","WebRenderer","HTMLElement","ModuleExport","ModuleExports","ModuleImportFn","MaybePromise","TeardownRenderToCanvas","RenderToCanvas","RenderContext","NamedExportsOrDefault","TExport","NamedOrDefaultProjectAnnotations","NormalizedComponentAnnotations","NormalizedStoryAnnotations","CSFFile","PreparedStory","PreparedMeta","BoundStory","Builder_WithRequiredProperty","Type","Property","Builder_Unpromise","Builder_EnvsRaw","RenderContextCallbacks","StoryRenderOptions","ResolvedModuleExportType","ResolvedModuleExportFromType","TType","ResolvedModuleExport","DocsContextProps","DocsRenderFunction","Store_CSFExports","PartialArgsStoryFn","StoriesWithPartialProps","TModule","TProps","ComposeStoryFn","SupportedFrameworks","SupportedRenderers","ComponentType","ComponentProps","Args","ComponentAnnotations","AnnotatedStoryFn","ArgsStoryFn","ArgsFromMeta","StoryAnnotations","StrictArgs","DecoratorFunction","LoaderFunction","StoryContext","StoryContext$1","ProjectAnnotations","R","ReactRenderer","_0","sideEffect","IsEqual","G","T","U","Filter","KeyType","ExcludeType","Except","ObjectType","KeysType","SimplifyOptions","Flatten","AnyType","Options","Simplify","SetOptional","BaseType","Keys","Pick","Partial","Meta","TCmpOrArgs","StoryFn","StoryObj","TMetaOrCmpOrArgs","Component","TArgs","DefaultArgs","AddMocks","Decorator","Loader","Preview","A","D","L","M","P","S","a","b","c","d"],"sources":["../../../node_modules/.pnpm/lexical@0.35.0/node_modules/lexical/nodes/LexicalElementNode.d.ts","../../../node_modules/.pnpm/lexical@0.35.0/node_modules/lexical/nodes/LexicalRootNode.d.ts","../../../node_modules/.pnpm/lexical@0.35.0/node_modules/lexical/LexicalEditorState.d.ts","../../../node_modules/.pnpm/lexical@0.35.0/node_modules/lexical/LexicalConstants.d.ts","../../../node_modules/.pnpm/lexical@0.35.0/node_modules/lexical/LexicalEditor.d.ts","../../../node_modules/.pnpm/lexical@0.35.0/node_modules/lexical/LexicalNode.d.ts","../../../node_modules/.pnpm/@storybook+core@8.6.15_prettier@3.7.4_storybook@8.6.15_prettier@3.7.4_/node_modules/@storybook/core/dist/csf/index.d.ts","../../../node_modules/.pnpm/@storybook+core@8.6.15_prettier@3.7.4_storybook@8.6.15_prettier@3.7.4_/node_modules/@storybook/core/dist/types/index.d.ts","../../../node_modules/.pnpm/@storybook+react@8.6.15_react-dom@19.1.0_react@19.1.0__react@19.1.0_storybook@8.6.15_prettier@3.7.4__typescript@5.7.3/node_modules/@storybook/react/dist/public-types-f2c70f25.d.ts","../src/renderer.ts"],"sourcesContent":["/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nimport type { DOMExportOutput, LexicalPrivateDOM, NodeKey, SerializedLexicalNode } from '../LexicalNode';\nimport type { BaseSelection, RangeSelection } from '../LexicalSelection';\nimport type { KlassConstructor, LexicalEditor, LexicalUpdateJSON, Spread, TextFormatType } from 'lexical';\nimport { TextNode } from '../index';\nimport { LexicalNode } from '../LexicalNode';\nexport type SerializedElementNode<T extends SerializedLexicalNode = SerializedLexicalNode> = Spread<{\n children: Array<T>;\n direction: 'ltr' | 'rtl' | null;\n format: ElementFormatType;\n indent: number;\n textFormat?: number;\n textStyle?: string;\n}, SerializedLexicalNode>;\nexport type ElementFormatType = 'left' | 'start' | 'center' | 'right' | 'end' | 'justify' | '';\nexport interface ElementNode {\n getTopLevelElement(): ElementNode | null;\n getTopLevelElementOrThrow(): ElementNode;\n}\n/**\n * A utility class for managing the DOM children of an ElementNode\n */\nexport declare class ElementDOMSlot<T extends HTMLElement = HTMLElement> {\n readonly element: T;\n readonly before: Node | null;\n readonly after: Node | null;\n constructor(\n /** The element returned by createDOM */\n element: T, \n /** All managed children will be inserted before this node, if defined */\n before?: Node | undefined | null, \n /** All managed children will be inserted after this node, if defined */\n after?: Node | undefined | null);\n /**\n * Return a new ElementDOMSlot where all managed children will be inserted before this node\n */\n withBefore(before: Node | undefined | null): ElementDOMSlot<T>;\n /**\n * Return a new ElementDOMSlot where all managed children will be inserted after this node\n */\n withAfter(after: Node | undefined | null): ElementDOMSlot<T>;\n /**\n * Return a new ElementDOMSlot with an updated root element\n */\n withElement<ElementType extends HTMLElement>(element: ElementType): ElementDOMSlot<ElementType>;\n /**\n * Insert the given child before this.before and any reconciler managed line break node,\n * or append it if this.before is not defined\n */\n insertChild(dom: Node): this;\n /**\n * Remove the managed child from this container, will throw if it was not already there\n */\n removeChild(dom: Node): this;\n /**\n * Replace managed child prevDom with dom. Will throw if prevDom is not a child\n *\n * @param dom The new node to replace prevDom\n * @param prevDom the node that will be replaced\n */\n replaceChild(dom: Node, prevDom: Node): this;\n /**\n * Returns the first managed child of this node,\n * which will either be this.after.nextSibling or this.element.firstChild,\n * and will never be this.before if it is defined.\n */\n getFirstChild(): ChildNode | null;\n /**\n * @internal\n */\n getManagedLineBreak(): Exclude<LexicalPrivateDOM['__lexicalLineBreak'], undefined>;\n /** @internal */\n setManagedLineBreak(lineBreakType: null | 'empty' | 'line-break' | 'decorator'): void;\n /** @internal */\n removeManagedLineBreak(): void;\n /** @internal */\n insertManagedLineBreak(webkitHack: boolean): void;\n /**\n * @internal\n *\n * Returns the offset of the first child\n */\n getFirstChildOffset(): number;\n /**\n * @internal\n */\n resolveChildIndex(element: ElementNode, elementDOM: HTMLElement, initialDOM: Node, initialOffset: number): [node: ElementNode, idx: number];\n}\nexport declare function indexPath(root: HTMLElement, child: Node): number[];\n/** @noInheritDoc */\nexport declare class ElementNode extends LexicalNode {\n ['constructor']: KlassConstructor<typeof ElementNode>;\n /** @internal */\n __first: null | NodeKey;\n /** @internal */\n __last: null | NodeKey;\n /** @internal */\n __size: number;\n /** @internal */\n __format: number;\n /** @internal */\n __style: string;\n /** @internal */\n __indent: number;\n /** @internal */\n __dir: 'ltr' | 'rtl' | null;\n /** @internal */\n __textFormat: number;\n /** @internal */\n __textStyle: string;\n constructor(key?: NodeKey);\n afterCloneFrom(prevNode: this): void;\n getFormat(): number;\n getFormatType(): ElementFormatType;\n getStyle(): string;\n getIndent(): number;\n getChildren<T extends LexicalNode>(): Array<T>;\n getChildrenKeys(): Array<NodeKey>;\n getChildrenSize(): number;\n isEmpty(): boolean;\n isDirty(): boolean;\n isLastChild(): boolean;\n getAllTextNodes(): Array<TextNode>;\n getFirstDescendant<T extends LexicalNode>(): null | T;\n getLastDescendant<T extends LexicalNode>(): null | T;\n getDescendantByIndex<T extends LexicalNode>(index: number): null | T;\n getFirstChild<T extends LexicalNode>(): null | T;\n getFirstChildOrThrow<T extends LexicalNode>(): T;\n getLastChild<T extends LexicalNode>(): null | T;\n getLastChildOrThrow<T extends LexicalNode>(): T;\n getChildAtIndex<T extends LexicalNode>(index: number): null | T;\n getTextContent(): string;\n getTextContentSize(): number;\n getDirection(): 'ltr' | 'rtl' | null;\n getTextFormat(): number;\n hasFormat(type: ElementFormatType): boolean;\n hasTextFormat(type: TextFormatType): boolean;\n /**\n * Returns the format flags applied to the node as a 32-bit integer.\n *\n * @returns a number representing the TextFormatTypes applied to the node.\n */\n getFormatFlags(type: TextFormatType, alignWithFormat: null | number): number;\n getTextStyle(): string;\n select(_anchorOffset?: number, _focusOffset?: number): RangeSelection;\n selectStart(): RangeSelection;\n selectEnd(): RangeSelection;\n clear(): this;\n append(...nodesToAppend: LexicalNode[]): this;\n setDirection(direction: 'ltr' | 'rtl' | null): this;\n setFormat(type: ElementFormatType): this;\n setStyle(style: string): this;\n setTextFormat(type: number): this;\n setTextStyle(style: string): this;\n setIndent(indentLevel: number): this;\n splice(start: number, deleteCount: number, nodesToInsert: Array<LexicalNode>): this;\n /**\n * @internal\n *\n * An experimental API that an ElementNode can override to control where its\n * children are inserted into the DOM, this is useful to add a wrapping node\n * or accessory nodes before or after the children. The root of the node returned\n * by createDOM must still be exactly one HTMLElement.\n */\n getDOMSlot(element: HTMLElement): ElementDOMSlot<HTMLElement>;\n exportDOM(editor: LexicalEditor): DOMExportOutput;\n exportJSON(): SerializedElementNode;\n updateFromJSON(serializedNode: LexicalUpdateJSON<SerializedElementNode>): this;\n insertNewAfter(selection: RangeSelection, restoreSelection?: boolean): null | LexicalNode;\n canIndent(): boolean;\n collapseAtStart(selection: RangeSelection): boolean;\n excludeFromCopy(destination?: 'clone' | 'html'): boolean;\n /** @deprecated @internal */\n canReplaceWith(replacement: LexicalNode): boolean;\n /** @deprecated @internal */\n canInsertAfter(node: LexicalNode): boolean;\n canBeEmpty(): boolean;\n canInsertTextBefore(): boolean;\n canInsertTextAfter(): boolean;\n isInline(): boolean;\n isShadowRoot(): boolean;\n /** @deprecated @internal */\n canMergeWith(node: ElementNode): boolean;\n extractWithChild(child: LexicalNode, selection: BaseSelection | null, destination: 'clone' | 'html'): boolean;\n /**\n * Determines whether this node, when empty, can merge with a first block\n * of nodes being inserted.\n *\n * This method is specifically called in {@link RangeSelection.insertNodes}\n * to determine merging behavior during nodes insertion.\n *\n * @example\n * // In a ListItemNode or QuoteNode implementation:\n * canMergeWhenEmpty(): true {\n * return true;\n * }\n */\n canMergeWhenEmpty(): boolean;\n /** @internal */\n reconcileObservedMutation(dom: HTMLElement, editor: LexicalEditor): void;\n}\nexport declare function $isElementNode(node: LexicalNode | null | undefined): node is ElementNode;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nimport type { LexicalNode, SerializedLexicalNode } from '../LexicalNode';\nimport type { SerializedElementNode } from './LexicalElementNode';\nimport { ElementNode } from './LexicalElementNode';\nexport type SerializedRootNode<T extends SerializedLexicalNode = SerializedLexicalNode> = SerializedElementNode<T>;\n/** @noInheritDoc */\nexport declare class RootNode extends ElementNode {\n /** @internal */\n __cachedText: null | string;\n static getType(): string;\n static clone(): RootNode;\n constructor();\n getTopLevelElementOrThrow(): never;\n getTextContent(): string;\n remove(): never;\n replace<N = LexicalNode>(node: N): never;\n insertBefore(nodeToInsert: LexicalNode): LexicalNode;\n insertAfter(nodeToInsert: LexicalNode): LexicalNode;\n updateDOM(prevNode: this, dom: HTMLElement): false;\n splice(start: number, deleteCount: number, nodesToInsert: LexicalNode[]): this;\n static importJSON(serializedNode: SerializedRootNode): RootNode;\n collapseAtStart(): true;\n}\nexport declare function $createRootNode(): RootNode;\nexport declare function $isRootNode(node: RootNode | LexicalNode | null | undefined): node is RootNode;\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nimport type { LexicalEditor } from './LexicalEditor';\nimport type { NodeMap, SerializedLexicalNode } from './LexicalNode';\nimport type { BaseSelection } from './LexicalSelection';\nimport type { SerializedRootNode } from './nodes/LexicalRootNode';\nexport interface SerializedEditorState<T extends SerializedLexicalNode = SerializedLexicalNode> {\n root: SerializedRootNode<T>;\n}\nexport declare function editorStateHasDirtySelection(editorState: EditorState, editor: LexicalEditor): boolean;\nexport declare function cloneEditorState(current: EditorState): EditorState;\nexport declare function createEmptyEditorState(): EditorState;\nexport interface EditorStateReadOptions {\n editor?: LexicalEditor | null;\n}\nexport declare class EditorState {\n _nodeMap: NodeMap;\n _selection: null | BaseSelection;\n _flushSync: boolean;\n _readOnly: boolean;\n constructor(nodeMap: NodeMap, selection?: null | BaseSelection);\n isEmpty(): boolean;\n read<V>(callbackFn: () => V, options?: EditorStateReadOptions): V;\n clone(selection?: null | BaseSelection): EditorState;\n toJSON(): SerializedEditorState;\n}\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nimport type { ElementFormatType } from './nodes/LexicalElementNode';\nimport type { TextDetailType, TextFormatType, TextModeType } from './nodes/LexicalTextNode';\nexport declare const DOM_ELEMENT_TYPE = 1;\nexport declare const DOM_TEXT_TYPE = 3;\nexport declare const DOM_DOCUMENT_TYPE = 9;\nexport declare const DOM_DOCUMENT_FRAGMENT_TYPE = 11;\nexport declare const NO_DIRTY_NODES = 0;\nexport declare const HAS_DIRTY_NODES = 1;\nexport declare const FULL_RECONCILE = 2;\nexport declare const IS_NORMAL = 0;\nexport declare const IS_TOKEN = 1;\nexport declare const IS_SEGMENTED = 2;\nexport declare const IS_BOLD = 1;\nexport declare const IS_ITALIC: number;\nexport declare const IS_STRIKETHROUGH: number;\nexport declare const IS_UNDERLINE: number;\nexport declare const IS_CODE: number;\nexport declare const IS_SUBSCRIPT: number;\nexport declare const IS_SUPERSCRIPT: number;\nexport declare const IS_HIGHLIGHT: number;\nexport declare const IS_LOWERCASE: number;\nexport declare const IS_UPPERCASE: number;\nexport declare const IS_CAPITALIZE: number;\nexport declare const IS_ALL_FORMATTING: number;\nexport declare const IS_DIRECTIONLESS = 1;\nexport declare const IS_UNMERGEABLE: number;\nexport declare const IS_ALIGN_LEFT = 1;\nexport declare const IS_ALIGN_CENTER = 2;\nexport declare const IS_ALIGN_RIGHT = 3;\nexport declare const IS_ALIGN_JUSTIFY = 4;\nexport declare const IS_ALIGN_START = 5;\nexport declare const IS_ALIGN_END = 6;\nexport declare const NON_BREAKING_SPACE = \"\\u00A0\";\nexport declare const COMPOSITION_SUFFIX: string;\nexport declare const DOUBLE_LINE_BREAK = \"\\n\\n\";\nexport declare const COMPOSITION_START_CHAR: string;\nexport declare const RTL_REGEX: RegExp;\nexport declare const LTR_REGEX: RegExp;\nexport declare const TEXT_TYPE_TO_FORMAT: Record<TextFormatType | string, number>;\nexport declare const DETAIL_TYPE_TO_DETAIL: Record<TextDetailType | string, number>;\nexport declare const ELEMENT_TYPE_TO_FORMAT: Record<Exclude<ElementFormatType, ''>, number>;\nexport declare const ELEMENT_FORMAT_TO_TYPE: Record<number, ElementFormatType>;\nexport declare const TEXT_MODE_TO_TYPE: Record<TextModeType, 0 | 1 | 2>;\nexport declare const TEXT_TYPE_TO_MODE: Record<number, TextModeType>;\nexport declare const NODE_STATE_KEY = \"$\";\nexport declare const PROTOTYPE_CONFIG_METHOD = \"$config\";\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nimport type { EditorState, SerializedEditorState } from './LexicalEditorState';\nimport type { DOMConversion, DOMConversionMap, DOMExportOutput, DOMExportOutputMap, NodeKey } from './LexicalNode';\nimport { LexicalNode } from './LexicalNode';\nimport { SharedNodeState } from './LexicalNodeState';\nimport { UpdateTag } from './LexicalUpdateTags';\nexport type Spread<T1, T2> = Omit<T2, keyof T1> & T1;\nexport type KlassConstructor<Cls extends GenericConstructor<any>> = GenericConstructor<InstanceType<Cls>> & {\n [k in keyof Cls]: Cls[k];\n};\ntype GenericConstructor<T> = new (...args: any[]) => T;\nexport type Klass<T extends LexicalNode> = InstanceType<T['constructor']> extends T ? T['constructor'] : GenericConstructor<T> & T['constructor'];\nexport type EditorThemeClassName = string;\nexport type TextNodeThemeClasses = {\n base?: EditorThemeClassName;\n bold?: EditorThemeClassName;\n code?: EditorThemeClassName;\n highlight?: EditorThemeClassName;\n italic?: EditorThemeClassName;\n lowercase?: EditorThemeClassName;\n uppercase?: EditorThemeClassName;\n capitalize?: EditorThemeClassName;\n strikethrough?: EditorThemeClassName;\n subscript?: EditorThemeClassName;\n superscript?: EditorThemeClassName;\n underline?: EditorThemeClassName;\n underlineStrikethrough?: EditorThemeClassName;\n [key: string]: EditorThemeClassName | undefined;\n};\nexport type EditorUpdateOptions = {\n /**\n * A function to run once the update is complete. See also {@link $onUpdate}.\n */\n onUpdate?: () => void;\n /**\n * Setting this to true will suppress all node\n * transforms for this update cycle.\n * Useful for synchronizing updates in some cases.\n */\n skipTransforms?: true;\n /**\n * A tag to identify this update, in an update listener, for instance.\n * See also {@link $addUpdateTag}.\n */\n tag?: UpdateTag | UpdateTag[];\n /**\n * If true, prevents this update from being batched, forcing it to\n * run synchronously.\n */\n discrete?: true;\n /** @internal */\n event?: undefined | UIEvent | Event | null;\n};\nexport type EditorSetOptions = {\n tag?: string;\n};\nexport interface EditorFocusOptions {\n /**\n * Where to move selection when the editor is\n * focused. Can be rootStart, rootEnd, or undefined. Defaults to rootEnd.\n */\n defaultSelection?: 'rootStart' | 'rootEnd';\n}\nexport type EditorThemeClasses = {\n blockCursor?: EditorThemeClassName;\n characterLimit?: EditorThemeClassName;\n code?: EditorThemeClassName;\n codeHighlight?: Record<string, EditorThemeClassName>;\n hashtag?: EditorThemeClassName;\n specialText?: EditorThemeClassName;\n heading?: {\n h1?: EditorThemeClassName;\n h2?: EditorThemeClassName;\n h3?: EditorThemeClassName;\n h4?: EditorThemeClassName;\n h5?: EditorThemeClassName;\n h6?: EditorThemeClassName;\n };\n hr?: EditorThemeClassName;\n hrSelected?: EditorThemeClassName;\n image?: EditorThemeClassName;\n link?: EditorThemeClassName;\n list?: {\n ul?: EditorThemeClassName;\n ulDepth?: Array<EditorThemeClassName>;\n ol?: EditorThemeClassName;\n olDepth?: Array<EditorThemeClassName>;\n checklist?: EditorThemeClassName;\n listitem?: EditorThemeClassName;\n listitemChecked?: EditorThemeClassName;\n listitemUnchecked?: EditorThemeClassName;\n nested?: {\n list?: EditorThemeClassName;\n listitem?: EditorThemeClassName;\n };\n };\n ltr?: EditorThemeClassName;\n mark?: EditorThemeClassName;\n markOverlap?: EditorThemeClassName;\n paragraph?: EditorThemeClassName;\n quote?: EditorThemeClassName;\n root?: EditorThemeClassName;\n rtl?: EditorThemeClassName;\n tab?: EditorThemeClassName;\n table?: EditorThemeClassName;\n tableAddColumns?: EditorThemeClassName;\n tableAddRows?: EditorThemeClassName;\n tableCellActionButton?: EditorThemeClassName;\n tableCellActionButtonContainer?: EditorThemeClassName;\n tableCellSelected?: EditorThemeClassName;\n tableCell?: EditorThemeClassName;\n tableCellHeader?: EditorThemeClassName;\n tableCellResizer?: EditorThemeClassName;\n tableRow?: EditorThemeClassName;\n tableScrollableWrapper?: EditorThemeClassName;\n tableSelected?: EditorThemeClassName;\n tableSelection?: EditorThemeClassName;\n text?: TextNodeThemeClasses;\n embedBlock?: {\n base?: EditorThemeClassName;\n focus?: EditorThemeClassName;\n };\n indent?: EditorThemeClassName;\n [key: string]: any;\n};\nexport type EditorConfig = {\n disableEvents?: boolean;\n namespace: string;\n theme: EditorThemeClasses;\n};\nexport type LexicalNodeReplacement = {\n replace: Klass<LexicalNode>;\n with: <T extends {\n new (...args: any): any;\n }>(node: InstanceType<T>) => LexicalNode;\n withKlass?: Klass<LexicalNode>;\n};\nexport type HTMLConfig = {\n export?: DOMExportOutputMap;\n import?: DOMConversionMap;\n};\n/**\n * A LexicalNode class or LexicalNodeReplacement configuration\n */\nexport type LexicalNodeConfig = Klass<LexicalNode> | LexicalNodeReplacement;\nexport type CreateEditorArgs = {\n disableEvents?: boolean;\n editorState?: EditorState;\n namespace?: string;\n nodes?: ReadonlyArray<LexicalNodeConfig>;\n onError?: ErrorHandler;\n parentEditor?: LexicalEditor;\n editable?: boolean;\n theme?: EditorThemeClasses;\n html?: HTMLConfig;\n};\nexport type RegisteredNodes = Map<string, RegisteredNode>;\nexport type RegisteredNode = {\n klass: Klass<LexicalNode>;\n transforms: Set<Transform<LexicalNode>>;\n replace: null | ((node: LexicalNode) => LexicalNode);\n replaceWithKlass: null | Klass<LexicalNode>;\n exportDOM?: (editor: LexicalEditor, targetNode: LexicalNode) => DOMExportOutput;\n sharedNodeState: SharedNodeState;\n};\nexport type Transform<T extends LexicalNode> = (node: T) => void;\nexport type ErrorHandler = (error: Error) => void;\nexport type MutationListeners = Map<MutationListener, Set<Klass<LexicalNode>>>;\nexport type MutatedNodes = Map<Klass<LexicalNode>, Map<NodeKey, NodeMutation>>;\nexport type NodeMutation = 'created' | 'updated' | 'destroyed';\nexport interface MutationListenerOptions {\n /**\n * Skip the initial call of the listener with pre-existing DOM nodes.\n *\n * The default was previously true for backwards compatibility with <= 0.16.1\n * but this default has been changed to false as of 0.21.0.\n */\n skipInitialization?: boolean;\n}\n/**\n * The payload passed to an UpdateListener\n */\nexport interface UpdateListenerPayload {\n /**\n * A Map of NodeKeys of ElementNodes to a boolean that is true\n * if the node was intentionally mutated ('unintentional' mutations\n * are triggered when an indirect descendant is marked dirty)\n */\n dirtyElements: Map<NodeKey, IntentionallyMarkedAsDirtyElement>;\n /**\n * A Set of NodeKeys of all nodes that were marked dirty that\n * do not inherit from ElementNode.\n */\n dirtyLeaves: Set<NodeKey>;\n /**\n * The new EditorState after all updates have been processed,\n * equivalent to `editor.getEditorState()`\n */\n editorState: EditorState;\n /**\n * The Map of LexicalNode constructors to a `Map<NodeKey, NodeMutation>`,\n * this is useful when you have a mutation listener type use cases that\n * should apply to all or most nodes. Will be null if no DOM was mutated,\n * such as when only the selection changed. Note that this will be empty\n * unless at least one MutationListener is explicitly registered\n * (any MutationListener is sufficient to compute the mutatedNodes Map\n * for all nodes).\n *\n * Added in v0.28.0\n */\n mutatedNodes: null | MutatedNodes;\n /**\n * For advanced use cases only.\n *\n * Tracks the keys of TextNode descendants that have been merged\n * with their siblings by normalization. Note that these keys may\n * not exist in either editorState or prevEditorState and generally\n * this is only used for conflict resolution edge cases in collab.\n */\n normalizedNodes: Set<NodeKey>;\n /**\n * The previous EditorState that is being discarded\n */\n prevEditorState: EditorState;\n /**\n * The set of tags added with update options or {@link $addUpdateTag},\n * node that this includes all tags that were processed in this\n * reconciliation which may have been added by separate updates.\n */\n tags: Set<string>;\n}\n/**\n * A listener that gets called after the editor is updated\n */\nexport type UpdateListener = (payload: UpdateListenerPayload) => void;\nexport type DecoratorListener<T = never> = (decorator: Record<NodeKey, T>) => void;\nexport type RootListener = (rootElement: null | HTMLElement, prevRootElement: null | HTMLElement) => void;\nexport type TextContentListener = (text: string) => void;\nexport type MutationListener = (nodes: Map<NodeKey, NodeMutation>, payload: {\n updateTags: Set<string>;\n dirtyLeaves: Set<string>;\n prevEditorState: EditorState;\n}) => void;\nexport type CommandListener<P> = (payload: P, editor: LexicalEditor) => boolean;\nexport type EditableListener = (editable: boolean) => void;\nexport type CommandListenerPriority = 0 | 1 | 2 | 3 | 4;\nexport declare const COMMAND_PRIORITY_EDITOR = 0;\nexport declare const COMMAND_PRIORITY_LOW = 1;\nexport declare const COMMAND_PRIORITY_NORMAL = 2;\nexport declare const COMMAND_PRIORITY_HIGH = 3;\nexport declare const COMMAND_PRIORITY_CRITICAL = 4;\nexport type LexicalCommand<TPayload> = {\n type?: string;\n};\n/**\n * Type helper for extracting the payload type from a command.\n *\n * @example\n * ```ts\n * const MY_COMMAND = createCommand<SomeType>();\n *\n * // ...\n *\n * editor.registerCommand(MY_COMMAND, payload => {\n * // Type of `payload` is inferred here. But lets say we want to extract a function to delegate to\n * $handleMyCommand(editor, payload);\n * return true;\n * });\n *\n * function $handleMyCommand(editor: LexicalEditor, payload: CommandPayloadType<typeof MY_COMMAND>) {\n * // `payload` is of type `SomeType`, extracted from the command.\n * }\n * ```\n */\nexport type CommandPayloadType<TCommand extends LexicalCommand<unknown>> = TCommand extends LexicalCommand<infer TPayload> ? TPayload : never;\ntype Commands = Map<LexicalCommand<unknown>, Array<Set<CommandListener<unknown>>>>;\nexport interface Listeners {\n decorator: Set<DecoratorListener<any>>;\n mutation: MutationListeners;\n editable: Set<EditableListener>;\n root: Set<RootListener>;\n textcontent: Set<TextContentListener>;\n update: Set<UpdateListener>;\n}\nexport type SetListeners = {\n [K in keyof Listeners as Listeners[K] extends Set<(...args: any[]) => void> ? K : never]: Listeners[K] extends Set<(...args: infer Args) => void> ? Args : never;\n};\nexport type TransformerType = 'text' | 'decorator' | 'element' | 'root';\ntype IntentionallyMarkedAsDirtyElement = boolean;\ntype DOMConversionCache = Map<string, Array<(node: Node) => DOMConversion | null>>;\nexport type SerializedEditor = {\n editorState: SerializedEditorState;\n};\nexport declare function resetEditor(editor: LexicalEditor, prevRootElement: null | HTMLElement, nextRootElement: null | HTMLElement, pendingEditorState: EditorState): void;\n/**\n * Creates a new LexicalEditor attached to a single contentEditable (provided in the config). This is\n * the lowest-level initialization API for a LexicalEditor. If you're using React or another framework,\n * consider using the appropriate abstractions, such as LexicalComposer\n * @param editorConfig - the editor configuration.\n * @returns a LexicalEditor instance\n */\nexport declare function createEditor(editorConfig?: CreateEditorArgs): LexicalEditor;\nexport declare class LexicalEditor {\n ['constructor']: KlassConstructor<typeof LexicalEditor>;\n /** The version with build identifiers for this editor (since 0.17.1) */\n static version: string | undefined;\n /** @internal */\n _headless: boolean;\n /** @internal */\n _parentEditor: null | LexicalEditor;\n /** @internal */\n _rootElement: null | HTMLElement;\n /** @internal */\n _editorState: EditorState;\n /** @internal */\n _pendingEditorState: null | EditorState;\n /** @internal */\n _compositionKey: null | NodeKey;\n /** @internal */\n _deferred: Array<() => void>;\n /** @internal */\n _keyToDOMMap: Map<NodeKey, HTMLElement>;\n /** @internal */\n _updates: Array<[() => void, EditorUpdateOptions | undefined]>;\n /** @internal */\n _updating: boolean;\n /** @internal */\n _listeners: Listeners;\n /** @internal */\n _commands: Commands;\n /** @internal */\n _nodes: RegisteredNodes;\n /** @internal */\n _decorators: Record<NodeKey, unknown>;\n /** @internal */\n _pendingDecorators: null | Record<NodeKey, unknown>;\n /** @internal */\n _config: EditorConfig;\n /** @internal */\n _dirtyType: 0 | 1 | 2;\n /** @internal */\n _cloneNotNeeded: Set<NodeKey>;\n /** @internal */\n _dirtyLeaves: Set<NodeKey>;\n /** @internal */\n _dirtyElements: Map<NodeKey, IntentionallyMarkedAsDirtyElement>;\n /** @internal */\n _normalizedNodes: Set<NodeKey>;\n /** @internal */\n _updateTags: Set<UpdateTag>;\n /** @internal */\n _observer: null | MutationObserver;\n /** @internal */\n _key: string;\n /** @internal */\n _onError: ErrorHandler;\n /** @internal */\n _htmlConversions: DOMConversionCache;\n /** @internal */\n _window: null | Window;\n /** @internal */\n _editable: boolean;\n /** @internal */\n _blockCursorElement: null | HTMLDivElement;\n /** @internal */\n _createEditorArgs?: undefined | CreateEditorArgs;\n /** @internal */\n constructor(editorState: EditorState, parentEditor: null | LexicalEditor, nodes: RegisteredNodes, config: EditorConfig, onError: ErrorHandler, htmlConversions: DOMConversionCache, editable: boolean, createEditorArgs?: CreateEditorArgs);\n /**\n *\n * @returns true if the editor is currently in \"composition\" mode due to receiving input\n * through an IME, or 3P extension, for example. Returns false otherwise.\n */\n isComposing(): boolean;\n /**\n * Registers a listener for Editor update event. Will trigger the provided callback\n * each time the editor goes through an update (via {@link LexicalEditor.update}) until the\n * teardown function is called.\n *\n * @returns a teardown function that can be used to cleanup the listener.\n */\n registerUpdateListener(listener: UpdateListener): () => void;\n /**\n * Registers a listener for for when the editor changes between editable and non-editable states.\n * Will trigger the provided callback each time the editor transitions between these states until the\n * teardown function is called.\n *\n * @returns a teardown function that can be used to cleanup the listener.\n */\n registerEditableListener(listener: EditableListener): () => void;\n /**\n * Registers a listener for when the editor's decorator object changes. The decorator object contains\n * all DecoratorNode keys -> their decorated value. This is primarily used with external UI frameworks.\n *\n * Will trigger the provided callback each time the editor transitions between these states until the\n * teardown function is called.\n *\n * @returns a teardown function that can be used to cleanup the listener.\n */\n registerDecoratorListener<T>(listener: DecoratorListener<T>): () => void;\n /**\n * Registers a listener for when Lexical commits an update to the DOM and the text content of\n * the editor changes from the previous state of the editor. If the text content is the\n * same between updates, no notifications to the listeners will happen.\n *\n * Will trigger the provided callback each time the editor transitions between these states until the\n * teardown function is called.\n *\n * @returns a teardown function that can be used to cleanup the listener.\n */\n registerTextContentListener(listener: TextContentListener): () => void;\n /**\n * Registers a listener for when the editor's root DOM element (the content editable\n * Lexical attaches to) changes. This is primarily used to attach event listeners to the root\n * element. The root listener function is executed directly upon registration and then on\n * any subsequent update.\n *\n * Will trigger the provided callback each time the editor transitions between these states until the\n * teardown function is called.\n *\n * @returns a teardown function that can be used to cleanup the listener.\n */\n registerRootListener(listener: RootListener): () => void;\n /**\n * Registers a listener that will trigger anytime the provided command\n * is dispatched with {@link LexicalEditor.dispatch}, subject to priority.\n * Listeners that run at a higher priority can \"intercept\" commands and\n * prevent them from propagating to other handlers by returning true.\n *\n * Listeners are always invoked in an {@link LexicalEditor.update} and can\n * call dollar functions.\n *\n * Listeners registered at the same priority level will run\n * deterministically in the order of registration.\n *\n * @param command - the command that will trigger the callback.\n * @param listener - the function that will execute when the command is dispatched.\n * @param priority - the relative priority of the listener. 0 | 1 | 2 | 3 | 4\n * (or {@link COMMAND_PRIORITY_EDITOR} |\n * {@link COMMAND_PRIORITY_LOW} |\n * {@link COMMAND_PRIORITY_NORMAL} |\n * {@link COMMAND_PRIORITY_HIGH} |\n * {@link COMMAND_PRIORITY_CRITICAL})\n * @returns a teardown function that can be used to cleanup the listener.\n */\n registerCommand<P>(command: LexicalCommand<P>, listener: CommandListener<P>, priority: CommandListenerPriority): () => void;\n /**\n * Registers a listener that will run when a Lexical node of the provided class is\n * mutated. The listener will receive a list of nodes along with the type of mutation\n * that was performed on each: created, destroyed, or updated.\n *\n * One common use case for this is to attach DOM event listeners to the underlying DOM nodes as Lexical nodes are created.\n * {@link LexicalEditor.getElementByKey} can be used for this.\n *\n * If any existing nodes are in the DOM, and skipInitialization is not true, the listener\n * will be called immediately with an updateTag of 'registerMutationListener' where all\n * nodes have the 'created' NodeMutation. This can be controlled with the skipInitialization option\n * (whose default was previously true for backwards compatibility with &lt;=0.16.1 but has been changed to false as of 0.21.0).\n *\n * @param klass - The class of the node that you want to listen to mutations on.\n * @param listener - The logic you want to run when the node is mutated.\n * @param options - see {@link MutationListenerOptions}\n * @returns a teardown function that can be used to cleanup the listener.\n */\n registerMutationListener(klass: Klass<LexicalNode>, listener: MutationListener, options?: MutationListenerOptions): () => void;\n /** @internal */\n getRegisteredNode(klass: Klass<LexicalNode>): RegisteredNode;\n /** @internal */\n resolveRegisteredNodeAfterReplacements(registeredNode: RegisteredNode): RegisteredNode;\n /** @internal */\n private initializeMutationListener;\n /** @internal */\n private registerNodeTransformToKlass;\n /**\n * Registers a listener that will run when a Lexical node of the provided class is\n * marked dirty during an update. The listener will continue to run as long as the node\n * is marked dirty. There are no guarantees around the order of transform execution!\n *\n * Watch out for infinite loops. See [Node Transforms](https://lexical.dev/docs/concepts/transforms)\n * @param klass - The class of the node that you want to run transforms on.\n * @param listener - The logic you want to run when the node is updated.\n * @returns a teardown function that can be used to cleanup the listener.\n */\n registerNodeTransform<T extends LexicalNode>(klass: Klass<T>, listener: Transform<T>): () => void;\n /**\n * Used to assert that a certain node is registered, usually by plugins to ensure nodes that they\n * depend on have been registered.\n * @returns True if the editor has registered the provided node type, false otherwise.\n */\n hasNode<T extends Klass<LexicalNode>>(node: T): boolean;\n /**\n * Used to assert that certain nodes are registered, usually by plugins to ensure nodes that they\n * depend on have been registered.\n * @returns True if the editor has registered all of the provided node types, false otherwise.\n */\n hasNodes<T extends Klass<LexicalNode>>(nodes: Array<T>): boolean;\n /**\n * Dispatches a command of the specified type with the specified payload.\n * This triggers all command listeners (set by {@link LexicalEditor.registerCommand})\n * for this type, passing them the provided payload. The command listeners\n * will be triggered in an implicit {@link LexicalEditor.update}, unless\n * this was invoked from inside an update in which case that update context\n * will be re-used (as if this was a dollar function itself).\n * @param type - the type of command listeners to trigger.\n * @param payload - the data to pass as an argument to the command listeners.\n */\n dispatchCommand<TCommand extends LexicalCommand<unknown>>(type: TCommand, payload: CommandPayloadType<TCommand>): boolean;\n /**\n * Gets a map of all decorators in the editor.\n * @returns A mapping of call decorator keys to their decorated content\n */\n getDecorators<T>(): Record<NodeKey, T>;\n /**\n *\n * @returns the current root element of the editor. If you want to register\n * an event listener, do it via {@link LexicalEditor.registerRootListener}, since\n * this reference may not be stable.\n */\n getRootElement(): null | HTMLElement;\n /**\n * Gets the key of the editor\n * @returns The editor key\n */\n getKey(): string;\n /**\n * Imperatively set the root contenteditable element that Lexical listens\n * for events on.\n */\n setRootElement(nextRootElement: null | HTMLElement): void;\n /**\n * Gets the underlying HTMLElement associated with the LexicalNode for the given key.\n * @returns the HTMLElement rendered by the LexicalNode associated with the key.\n * @param key - the key of the LexicalNode.\n */\n getElementByKey(key: NodeKey): HTMLElement | null;\n /**\n * Gets the active editor state.\n * @returns The editor state\n */\n getEditorState(): EditorState;\n /**\n * Imperatively set the EditorState. Triggers reconciliation like an update.\n * @param editorState - the state to set the editor\n * @param options - options for the update.\n */\n setEditorState(editorState: EditorState, options?: EditorSetOptions): void;\n /**\n * Parses a SerializedEditorState (usually produced by {@link EditorState.toJSON}) and returns\n * and EditorState object that can be, for example, passed to {@link LexicalEditor.setEditorState}. Typically,\n * deserialization from JSON stored in a database uses this method.\n * @param maybeStringifiedEditorState\n * @param updateFn\n * @returns\n */\n parseEditorState(maybeStringifiedEditorState: string | SerializedEditorState, updateFn?: () => void): EditorState;\n /**\n * Executes a read of the editor's state, with the\n * editor context available (useful for exporting and read-only DOM\n * operations). Much like update, but prevents any mutation of the\n * editor's state. Any pending updates will be flushed immediately before\n * the read.\n * @param callbackFn - A function that has access to read-only editor state.\n */\n read<T>(callbackFn: () => T): T;\n /**\n * Executes an update to the editor state. The updateFn callback is the ONLY place\n * where Lexical editor state can be safely mutated.\n * @param updateFn - A function that has access to writable editor state.\n * @param options - A bag of options to control the behavior of the update.\n */\n update(updateFn: () => void, options?: EditorUpdateOptions): void;\n /**\n * Focuses the editor by marking the existing selection as dirty, or by\n * creating a new selection at `defaultSelection` if one does not already\n * exist. If you want to force a specific selection, you should call\n * `root.selectStart()` or `root.selectEnd()` in an update.\n *\n * @param callbackFn - A function to run after the editor is focused.\n * @param options - A bag of options\n */\n focus(callbackFn?: () => void, options?: EditorFocusOptions): void;\n /**\n * Removes focus from the editor.\n */\n blur(): void;\n /**\n * Returns true if the editor is editable, false otherwise.\n * @returns True if the editor is editable, false otherwise.\n */\n isEditable(): boolean;\n /**\n * Sets the editable property of the editor. When false, the\n * editor will not listen for user events on the underling contenteditable.\n * @param editable - the value to set the editable mode to.\n */\n setEditable(editable: boolean): void;\n /**\n * Returns a JSON-serializable javascript object NOT a JSON string.\n * You still must call JSON.stringify (or something else) to turn the\n * state into a string you can transfer over the wire and store in a database.\n *\n * See {@link LexicalNode.exportJSON}\n *\n * @returns A JSON-serializable javascript object\n */\n toJSON(): SerializedEditor;\n}\nexport {};\n","/**\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\nimport type { EditorConfig, Klass, KlassConstructor, LexicalEditor } from './LexicalEditor';\nimport type { BaseSelection, RangeSelection } from './LexicalSelection';\nimport { type DecoratorNode, type ElementNode, NODE_STATE_KEY } from '.';\nimport { PROTOTYPE_CONFIG_METHOD } from './LexicalConstants';\nimport { type NodeState, type NodeStateJSON, type Prettify, type RequiredNodeStateConfig } from './LexicalNodeState';\nexport type NodeMap = Map<NodeKey, LexicalNode>;\n/**\n * The base type for all serialized nodes\n */\nexport type SerializedLexicalNode = {\n /** The type string used by the Node class */\n type: string;\n /** A numeric version for this schema, defaulting to 1, but not generally recommended for use */\n version: number;\n /**\n * Any state persisted with the NodeState API that is not\n * configured for flat storage\n */\n [NODE_STATE_KEY]?: Record<string, unknown>;\n};\n/**\n * EXPERIMENTAL\n * The configuration of a node returned by LexicalNode.$config()\n *\n * @example\n * ```ts\n * class CustomText extends TextNode {\n * $config() {\n * return this.config('custom-text', {extends: TextNode}};\n * }\n * }\n * ```\n */\nexport interface StaticNodeConfigValue<T extends LexicalNode, Type extends string> {\n /**\n * The exact type of T.getType(), e.g. 'text' - the method itself must\n * have a more generic 'string' type to be compatible wtih subclassing.\n */\n readonly type?: Type;\n /**\n * An alternative to the internal static transform() method\n * that provides better type inference.\n */\n readonly $transform?: (node: T) => void;\n /**\n * An alternative to the static importJSON() method\n * that provides better type inference.\n */\n readonly $importJSON?: (serializedNode: SerializedLexicalNode) => T;\n /**\n * An alternative to the static importDOM() method\n */\n readonly importDOM?: DOMConversionMap;\n /**\n * EXPERIMENTAL\n *\n * An array of RequiredNodeStateConfig to initialize your node with\n * its state requirements. This may be used to configure serialization of\n * that state.\n *\n * This function will be called (at most) once per editor initialization,\n * directly on your node's prototype. It must not depend on any state\n * initialized in the constructor.\n *\n * @example\n * ```ts\n * const flatState = createState(\"flat\", {parse: parseNumber});\n * const nestedState = createState(\"nested\", {parse: parseNumber});\n * class MyNode extends TextNode {\n * $config() {\n * return this.config(\n * 'my-node',\n * {\n * extends: TextNode,\n * stateConfigs: [\n * { stateConfig: flatState, flat: true},\n * nestedState,\n * ]\n * },\n * );\n * }\n * }\n * ```\n */\n readonly stateConfigs?: readonly RequiredNodeStateConfig[];\n /**\n * If specified, this must be the exact superclass of the node. It is not\n * checked at compile time and it is provided automatically at runtime.\n *\n * You would want to specify this when you are extending a node that\n * has non-trivial configuration in its $config such\n * as required state. If you do not specify this, the inferred\n * types for your node class might be missing some of that.\n */\n readonly extends?: Klass<LexicalNode>;\n}\n/**\n * This is the type of LexicalNode.$config() that can be\n * overridden by subclasses.\n */\nexport type BaseStaticNodeConfig = {\n readonly [K in string]?: StaticNodeConfigValue<LexicalNode, string>;\n};\n/**\n * Used to extract the node and type from a StaticNodeConfigRecord\n */\nexport type StaticNodeConfig<T extends LexicalNode, Type extends string> = BaseStaticNodeConfig & {\n readonly [K in Type]?: StaticNodeConfigValue<T, Type>;\n};\n/**\n * Any StaticNodeConfigValue (for generics and collections)\n */\nexport type AnyStaticNodeConfigValue = StaticNodeConfigValue<any, any>;\n/**\n * @internal\n *\n * This is the more specific type than BaseStaticNodeConfig that a subclass\n * should return from $config()\n */\nexport type StaticNodeConfigRecord<Type extends string, Config extends AnyStaticNodeConfigValue> = BaseStaticNodeConfig & {\n readonly [K in Type]?: Config;\n};\n/**\n * Extract the type from a node based on its $config\n *\n * @example\n * ```ts\n * type TextNodeType = GetStaticNodeType<TextNode>;\n * // ? 'text'\n * ```\n */\nexport type GetStaticNodeType<T extends LexicalNode> = ReturnType<T[typeof PROTOTYPE_CONFIG_METHOD]> extends StaticNodeConfig<T, infer Type> ? Type : string;\n/**\n * The most precise type we can infer for the JSON that will\n * be produced by T.exportJSON().\n *\n * Do not use this for the return type of T.exportJSON()! It must be\n * a more generic type to be compatible with subclassing.\n */\nexport type LexicalExportJSON<T extends LexicalNode> = Prettify<Omit<ReturnType<T['exportJSON']>, 'type'> & {\n type: GetStaticNodeType<T>;\n} & NodeStateJSON<T>>;\n/**\n * Omit the children, type, and version properties from the given SerializedLexicalNode definition.\n */\nexport type LexicalUpdateJSON<T extends SerializedLexicalNode> = Omit<T, 'children' | 'type' | 'version'>;\n/** @internal */\nexport interface LexicalPrivateDOM {\n __lexicalTextContent?: string | undefined | null;\n __lexicalLineBreak?: HTMLBRElement | HTMLImageElement | undefined | null;\n __lexicalDirTextContent?: string | undefined | null;\n __lexicalDir?: 'ltr' | 'rtl' | null | undefined;\n __lexicalUnmanaged?: boolean | undefined;\n}\nexport declare function $removeNode(nodeToRemove: LexicalNode, restoreSelection: boolean, preserveEmptyParent?: boolean): void;\nexport type DOMConversionProp<T extends HTMLElement> = (node: T) => DOMConversion<T> | null;\nexport type DOMConversionPropByTagName<K extends string> = DOMConversionProp<K extends keyof HTMLElementTagNameMap ? HTMLElementTagNameMap[K] : HTMLElement>;\nexport type DOMConversionTagNameMap<K extends string> = {\n [NodeName in K]?: DOMConversionPropByTagName<NodeName>;\n};\n/**\n * An identity function that will infer the type of DOM nodes\n * based on tag names to make it easier to construct a\n * DOMConversionMap.\n */\nexport declare function buildImportMap<K extends string>(importMap: {\n [NodeName in K]: DOMConversionPropByTagName<NodeName>;\n}): DOMConversionMap;\nexport type DOMConversion<T extends HTMLElement = HTMLElement> = {\n conversion: DOMConversionFn<T>;\n priority?: 0 | 1 | 2 | 3 | 4;\n};\nexport type DOMConversionFn<T extends HTMLElement = HTMLElement> = (element: T) => DOMConversionOutput | null;\nexport type DOMChildConversion = (lexicalNode: LexicalNode, parentLexicalNode: LexicalNode | null | undefined) => LexicalNode | null | undefined;\nexport type DOMConversionMap<T extends HTMLElement = HTMLElement> = Record<NodeName, DOMConversionProp<T>>;\ntype NodeName = string;\nexport type DOMConversionOutput = {\n after?: (childLexicalNodes: Array<LexicalNode>) => Array<LexicalNode>;\n forChild?: DOMChildConversion;\n node: null | LexicalNode | Array<LexicalNode>;\n};\nexport type DOMExportOutputMap = Map<Klass<LexicalNode>, (editor: LexicalEditor, target: LexicalNode) => DOMExportOutput>;\nexport type DOMExportOutput = {\n after?: (generatedElement: HTMLElement | DocumentFragment | Text | null | undefined) => HTMLElement | DocumentFragment | Text | null | undefined;\n element: HTMLElement | DocumentFragment | Text | null;\n};\nexport type NodeKey = string;\nexport declare class LexicalNode {\n ['constructor']: KlassConstructor<typeof LexicalNode>;\n /** @internal */\n __type: string;\n /** @internal */\n __key: string;\n /** @internal */\n __parent: null | NodeKey;\n /** @internal */\n __prev: null | NodeKey;\n /** @internal */\n __next: null | NodeKey;\n /** @internal */\n __state?: NodeState<this>;\n /**\n * Returns the string type of this node. Every node must\n * implement this and it MUST BE UNIQUE amongst nodes registered\n * on the editor.\n *\n */\n static getType(): string;\n /**\n * Clones this node, creating a new node with a different key\n * and adding it to the EditorState (but not attaching it anywhere!). All nodes must\n * implement this method.\n *\n */\n static clone(_data: unknown): LexicalNode;\n /**\n * Override this to implement the new static node configuration protocol,\n * this method is called directly on the prototype and must not depend\n * on anything initialized in the constructor. Generally it should be\n * a trivial implementation.\n *\n * @example\n * ```ts\n * class MyNode extends TextNode {\n * $config() {\n * return this.config('my-node', {extends: TextNode});\n * }\n * }\n * ```\n */\n $config(): BaseStaticNodeConfig;\n /**\n * This is a convenience method for $config that\n * aids in type inference. See {@link LexicalNode.$config}\n * for example usage.\n */\n config<Type extends string, Config extends StaticNodeConfigValue<this, Type>>(type: Type, config: Config): StaticNodeConfigRecord<Type, Config>;\n /**\n * Perform any state updates on the clone of prevNode that are not already\n * handled by the constructor call in the static clone method. If you have\n * state to update in your clone that is not handled directly by the\n * constructor, it is advisable to override this method but it is required\n * to include a call to `super.afterCloneFrom(prevNode)` in your\n * implementation. This is only intended to be called by\n * {@link $cloneWithProperties} function or via a super call.\n *\n * @example\n * ```ts\n * class ClassesTextNode extends TextNode {\n * // Not shown: static getType, static importJSON, exportJSON, createDOM, updateDOM\n * __classes = new Set<string>();\n * static clone(node: ClassesTextNode): ClassesTextNode {\n * // The inherited TextNode constructor is used here, so\n * // classes is not set by this method.\n * return new ClassesTextNode(node.__text, node.__key);\n * }\n * afterCloneFrom(node: this): void {\n * // This calls TextNode.afterCloneFrom and LexicalNode.afterCloneFrom\n * // for necessary state updates\n * super.afterCloneFrom(node);\n * this.__addClasses(node.__classes);\n * }\n * // This method is a private implementation detail, it is not\n * // suitable for the public API because it does not call getWritable\n * __addClasses(classNames: Iterable<string>): this {\n * for (const className of classNames) {\n * this.__classes.add(className);\n * }\n * return this;\n * }\n * addClass(...classNames: string[]): this {\n * return this.getWritable().__addClasses(classNames);\n * }\n * removeClass(...classNames: string[]): this {\n * const node = this.getWritable();\n * for (const className of classNames) {\n * this.__classes.delete(className);\n * }\n * return this;\n * }\n * getClasses(): Set<string> {\n * return this.getLatest().__classes;\n * }\n * }\n * ```\n *\n */\n afterCloneFrom(prevNode: this): void;\n static importDOM?: () => DOMConversionMap<any> | null;\n constructor(key?: NodeKey);\n /**\n * Returns the string type of this node.\n */\n getType(): string;\n isInline(): boolean;\n /**\n * Returns true if there is a path between this node and the RootNode, false otherwise.\n * This is a way of determining if the node is \"attached\" EditorState. Unattached nodes\n * won't be reconciled and will ultimately be cleaned up by the Lexical GC.\n */\n isAttached(): boolean;\n /**\n * Returns true if this node is contained within the provided Selection., false otherwise.\n * Relies on the algorithms implemented in {@link BaseSelection.getNodes} to determine\n * what's included.\n *\n * @param selection - The selection that we want to determine if the node is in.\n */\n isSelected(selection?: null | BaseSelection): boolean;\n /**\n * Returns this nodes key.\n */\n getKey(): NodeKey;\n /**\n * Returns the zero-based index of this node within the parent.\n */\n getIndexWithinParent(): number;\n /**\n * Returns the parent of this node, or null if none is found.\n */\n getParent<T extends ElementNode>(): T | null;\n /**\n * Returns the parent of this node, or throws if none is found.\n */\n getParentOrThrow<T extends ElementNode>(): T;\n /**\n * Returns the highest (in the EditorState tree)\n * non-root ancestor of this node, or null if none is found. See {@link lexical!$isRootOrShadowRoot}\n * for more information on which Elements comprise \"roots\".\n */\n getTopLevelElement(): ElementNode | DecoratorNode<unknown> | null;\n /**\n * Returns the highest (in the EditorState tree)\n * non-root ancestor of this node, or throws if none is found. See {@link lexical!$isRootOrShadowRoot}\n * for more information on which Elements comprise \"roots\".\n */\n getTopLevelElementOrThrow(): ElementNode | DecoratorNode<unknown>;\n /**\n * Returns a list of the every ancestor of this node,\n * all the way up to the RootNode.\n *\n */\n getParents(): Array<ElementNode>;\n /**\n * Returns a list of the keys of every ancestor of this node,\n * all the way up to the RootNode.\n *\n */\n getParentKeys(): Array<NodeKey>;\n /**\n * Returns the \"previous\" siblings - that is, the node that comes\n * before this one in the same parent.\n *\n */\n getPreviousSibling<T extends LexicalNode>(): T | null;\n /**\n * Returns the \"previous\" siblings - that is, the nodes that come between\n * this one and the first child of it's parent, inclusive.\n *\n */\n getPreviousSiblings<T extends LexicalNode>(): Array<T>;\n /**\n * Returns the \"next\" siblings - that is, the node that comes\n * after this one in the same parent\n *\n */\n getNextSibling<T extends LexicalNode>(): T | null;\n /**\n * Returns all \"next\" siblings - that is, the nodes that come between this\n * one and the last child of it's parent, inclusive.\n *\n */\n getNextSiblings<T extends LexicalNode>(): Array<T>;\n /**\n * @deprecated use {@link $getCommonAncestor}\n *\n * Returns the closest common ancestor of this node and the provided one or null\n * if one cannot be found.\n *\n * @param node - the other node to find the common ancestor of.\n */\n getCommonAncestor<T extends ElementNode = ElementNode>(node: LexicalNode): T | null;\n /**\n * Returns true if the provided node is the exact same one as this node, from Lexical's perspective.\n * Always use this instead of referential equality.\n *\n * @param object - the node to perform the equality comparison on.\n */\n is(object: LexicalNode | null | undefined): boolean;\n /**\n * Returns true if this node logically precedes the target node in the\n * editor state, false otherwise (including if there is no common ancestor).\n *\n * Note that this notion of isBefore is based on post-order; a descendant\n * node is always before its ancestors. See also\n * {@link $getCommonAncestor} and {@link $comparePointCaretNext} for\n * more flexible ways to determine the relative positions of nodes.\n *\n * @param targetNode - the node we're testing to see if it's after this one.\n */\n isBefore(targetNode: LexicalNode): boolean;\n /**\n * Returns true if this node is an ancestor of and distinct from the target node, false otherwise.\n *\n * @param targetNode - the would-be child node.\n */\n isParentOf(targetNode: LexicalNode): boolean;\n /**\n * Returns a list of nodes that are between this node and\n * the target node in the EditorState.\n *\n * @param targetNode - the node that marks the other end of the range of nodes to be returned.\n */\n getNodesBetween(targetNode: LexicalNode): Array<LexicalNode>;\n /**\n * Returns true if this node has been marked dirty during this update cycle.\n *\n */\n isDirty(): boolean;\n /**\n * Returns the latest version of the node from the active EditorState.\n * This is used to avoid getting values from stale node references.\n *\n */\n getLatest(): this;\n /**\n * Returns a mutable version of the node using {@link $cloneWithProperties}\n * if necessary. Will throw an error if called outside of a Lexical Editor\n * {@link LexicalEditor.update} callback.\n *\n */\n getWritable(): this;\n /**\n * Returns the text content of the node. Override this for\n * custom nodes that should have a representation in plain text\n * format (for copy + paste, for example)\n *\n */\n getTextContent(): string;\n /**\n * Returns the length of the string produced by calling getTextContent on this node.\n *\n */\n getTextContentSize(): number;\n /**\n * Called during the reconciliation process to determine which nodes\n * to insert into the DOM for this Lexical Node.\n *\n * This method must return exactly one HTMLElement. Nested elements are not supported.\n *\n * Do not attempt to update the Lexical EditorState during this phase of the update lifecycle.\n *\n * @param _config - allows access to things like the EditorTheme (to apply classes) during reconciliation.\n * @param _editor - allows access to the editor for context during reconciliation.\n *\n * */\n createDOM(_config: EditorConfig, _editor: LexicalEditor): HTMLElement;\n /**\n * Called when a node changes and should update the DOM\n * in whatever way is necessary to make it align with any changes that might\n * have happened during the update.\n *\n * Returning \"true\" here will cause lexical to unmount and recreate the DOM node\n * (by calling createDOM). You would need to do this if the element tag changes,\n * for instance.\n *\n * */\n updateDOM(_prevNode: unknown, _dom: HTMLElement, _config: EditorConfig): boolean;\n /**\n * Controls how the this node is serialized to HTML. This is important for\n * copy and paste between Lexical and non-Lexical editors, or Lexical editors with different namespaces,\n * in which case the primary transfer format is HTML. It's also important if you're serializing\n * to HTML for any other reason via {@link @lexical/html!$generateHtmlFromNodes}. You could\n * also use this method to build your own HTML renderer.\n *\n * */\n exportDOM(editor: LexicalEditor): DOMExportOutput;\n /**\n * Controls how the this node is serialized to JSON. This is important for\n * copy and paste between Lexical editors sharing the same namespace. It's also important\n * if you're serializing to JSON for persistent storage somewhere.\n * See [Serialization & Deserialization](https://lexical.dev/docs/concepts/serialization#lexical---html).\n *\n * */\n exportJSON(): SerializedLexicalNode;\n /**\n * Controls how the this node is deserialized from JSON. This is usually boilerplate,\n * but provides an abstraction between the node implementation and serialized interface that can\n * be important if you ever make breaking changes to a node schema (by adding or removing properties).\n * See [Serialization & Deserialization](https://lexical.dev/docs/concepts/serialization#lexical---html).\n *\n * */\n static importJSON(_serializedNode: SerializedLexicalNode): LexicalNode;\n /**\n * Update this LexicalNode instance from serialized JSON. It's recommended\n * to implement as much logic as possible in this method instead of the\n * static importJSON method, so that the functionality can be inherited in subclasses.\n *\n * The LexicalUpdateJSON utility type should be used to ignore any type, version,\n * or children properties in the JSON so that the extended JSON from subclasses\n * are acceptable parameters for the super call.\n *\n * If overridden, this method must call super.\n *\n * @example\n * ```ts\n * class MyTextNode extends TextNode {\n * // ...\n * static importJSON(serializedNode: SerializedMyTextNode): MyTextNode {\n * return $createMyTextNode()\n * .updateFromJSON(serializedNode);\n * }\n * updateFromJSON(\n * serializedNode: LexicalUpdateJSON<SerializedMyTextNode>,\n * ): this {\n * return super.updateFromJSON(serializedNode)\n * .setMyProperty(serializedNode.myProperty);\n * }\n * }\n * ```\n **/\n updateFromJSON(serializedNode: LexicalUpdateJSON<SerializedLexicalNode>): this;\n /**\n * @experimental\n *\n * Registers the returned function as a transform on the node during\n * Editor initialization. Most such use cases should be addressed via\n * the {@link LexicalEditor.registerNodeTransform} API.\n *\n * Experimental - use at your own risk.\n */\n static transform(): ((node: LexicalNode) => void) | null;\n /**\n * Removes this LexicalNode from the EditorState. If the node isn't re-inserted\n * somewhere, the Lexical garbage collector will eventually clean it up.\n *\n * @param preserveEmptyParent - If falsy, the node's parent will be removed if\n * it's empty after the removal operation. This is the default behavior, subject to\n * other node heuristics such as {@link ElementNode#canBeEmpty}\n * */\n remove(preserveEmptyParent?: boolean): void;\n /**\n * Replaces this LexicalNode with the provided node, optionally transferring the children\n * of the replaced node to the replacing node.\n *\n * @param replaceWith - The node to replace this one with.\n * @param includeChildren - Whether or not to transfer the children of this node to the replacing node.\n * */\n replace<N extends LexicalNode>(replaceWith: N, includeChildren?: boolean): N;\n /**\n * Inserts a node after this LexicalNode (as the next sibling).\n *\n * @param nodeToInsert - The node to insert after this one.\n * @param restoreSelection - Whether or not to attempt to resolve the\n * selection to the appropriate place after the operation is complete.\n * */\n insertAfter(nodeToInsert: LexicalNode, restoreSelection?: boolean): LexicalNode;\n /**\n * Inserts a node before this LexicalNode (as the previous sibling).\n *\n * @param nodeToInsert - The node to insert before this one.\n * @param restoreSelection - Whether or not to attempt to resolve the\n * selection to the appropriate place after the operation is complete.\n * */\n insertBefore(nodeToInsert: LexicalNode, restoreSelection?: boolean): LexicalNode;\n /**\n * Whether or not this node has a required parent. Used during copy + paste operations\n * to normalize nodes that would otherwise be orphaned. For example, ListItemNodes without\n * a ListNode parent or TextNodes with a ParagraphNode parent.\n *\n * */\n isParentRequired(): boolean;\n /**\n * The creation logic for any required parent. Should be implemented if {@link isParentRequired} returns true.\n *\n * */\n createParentElementNode(): ElementNode;\n selectStart(): RangeSelection;\n selectEnd(): RangeSelection;\n /**\n * Moves selection to the previous sibling of this node, at the specified offsets.\n *\n * @param anchorOffset - The anchor offset for selection.\n * @param focusOffset - The focus offset for selection\n * */\n selectPrevious(anchorOffset?: number, focusOffset?: number): RangeSelection;\n /**\n * Moves selection to the next sibling of this node, at the specified offsets.\n *\n * @param anchorOffset - The anchor offset for selection.\n * @param focusOffset - The focus offset for selection\n * */\n selectNext(anchorOffset?: number, focusOffset?: number): RangeSelection;\n /**\n * Marks a node dirty, triggering transforms and\n * forcing it to be reconciled during the update cycle.\n *\n * */\n markDirty(): void;\n /**\n * @internal\n *\n * When the reconciler detects that a node was mutated, this method\n * may be called to restore the node to a known good state.\n */\n reconcileObservedMutation(dom: HTMLElement, editor: LexicalEditor): void;\n}\n/**\n * Insert a series of nodes after this LexicalNode (as next siblings)\n *\n * @param firstToInsert - The first node to insert after this one.\n * @param lastToInsert - The last node to insert after this one. Must be a\n * later sibling of FirstNode. If not provided, it will be its last sibling.\n */\nexport declare function insertRangeAfter(node: LexicalNode, firstToInsert: LexicalNode, lastToInsert?: LexicalNode): void;\nexport {};\n","import { Renderer as Renderer$1, ProjectAnnotations as ProjectAnnotations$1, NormalizedProjectAnnotations, ComponentAnnotations as ComponentAnnotations$1, Args as Args$1, NormalizedComponentAnnotations, StoryAnnotations as StoryAnnotations$1, NormalizedStoryAnnotations } from '@storybook/core/types';\n\ndeclare global {\n\tinterface SymbolConstructor {\n\t\treadonly observable: symbol;\n\t}\n}\n\n/**\n@see Simplify\n*/\ninterface SimplifyOptions {\n\t/**\n\tDo the simplification recursively.\n\n\t@default false\n\t*/\n\tdeep?: boolean;\n}\n\n// Flatten a type without worrying about the result.\ntype Flatten<\n\tAnyType,\n\tOptions extends SimplifyOptions = {},\n> = Options['deep'] extends true\n\t? {[KeyType in keyof AnyType]: Simplify<AnyType[KeyType], Options>}\n\t: {[KeyType in keyof AnyType]: AnyType[KeyType]};\n\n/**\nUseful to flatten the type output to improve type hints shown in editors. And also to transform an interface into a type to aide with assignability.\n\n@example\n```\nimport type {Simplify} from 'type-fest';\n\ntype PositionProps = {\n\ttop: number;\n\tleft: number;\n};\n\ntype SizeProps = {\n\twidth: number;\n\theight: number;\n};\n\n// In your editor, hovering over `Props` will show a flattened object with all the properties.\ntype Props = Simplify<PositionProps & SizeProps>;\n```\n\nSometimes it is desired to pass a value as a function argument that has a different type. At first inspection it may seem assignable, and then you discover it is not because the `value`'s type definition was defined as an interface. In the following example, `fn` requires an argument of type `Record<string, unknown>`. If the value is defined as a literal, then it is assignable. And if the `value` is defined as type using the `Simplify` utility the value is assignable. But if the `value` is defined as an interface, it is not assignable because the interface is not sealed and elsewhere a non-string property could be added to the interface.\n\nIf the type definition must be an interface (perhaps it was defined in a third-party npm package), then the `value` can be defined as `const value: Simplify<SomeInterface> = ...`. Then `value` will be assignable to the `fn` argument. Or the `value` can be cast as `Simplify<SomeInterface>` if you can't re-declare the `value`.\n\n@example\n```\nimport type {Simplify} from 'type-fest';\n\ninterface SomeInterface {\n\tfoo: number;\n\tbar?: string;\n\tbaz: number | undefined;\n}\n\ntype SomeType = {\n\tfoo: number;\n\tbar?: string;\n\tbaz: number | undefined;\n};\n\nconst literal = {foo: 123, bar: 'hello', baz: 456};\nconst someType: SomeType = literal;\nconst someInterface: SomeInterface = literal;\n\nfunction fn(object: Record<string, unknown>): void {}\n\nfn(literal); // Good: literal object type is sealed\nfn(someType); // Good: type is sealed\nfn(someInterface); // Error: Index signature for type 'string' is missing in type 'someInterface'. Because `interface` can be re-opened\nfn(someInterface as Simplify<SomeInterface>); // Good: transform an `interface` into a `type`\n```\n\n@link https://github.com/microsoft/TypeScript/issues/15300\n\n@category Object\n*/\ntype Simplify<\n\tAnyType,\n\tOptions extends SimplifyOptions = {},\n> = Flatten<AnyType> extends AnyType\n\t? Flatten<AnyType, Options>\n\t: AnyType;\n\n/**\nRemove any index signatures from the given object type, so that only explicitly defined properties remain.\n\nUse-cases:\n- Remove overly permissive signatures from third-party types.\n\nThis type was taken from this [StackOverflow answer](https://stackoverflow.com/a/68261113/420747).\n\nIt relies on the fact that an empty object (`{}`) is assignable to an object with just an index signature, like `Record<string, unknown>`, but not to an object with explicitly defined keys, like `Record<'foo' | 'bar', unknown>`.\n\n(The actual value type, `unknown`, is irrelevant and could be any type. Only the key type matters.)\n\n```\nconst indexed: Record<string, unknown> = {}; // Allowed\n\nconst keyed: Record<'foo', unknown> = {}; // Error\n// => TS2739: Type '{}' is missing the following properties from type 'Record<\"foo\" | \"bar\", unknown>': foo, bar\n```\n\nInstead of causing a type error like the above, you can also use a [conditional type](https://www.typescriptlang.org/docs/handbook/2/conditional-types.html) to test whether a type is assignable to another:\n\n```\ntype Indexed = {} extends Record<string, unknown>\n\t? '✅ `{}` is assignable to `Record<string, unknown>`'\n\t: '❌ `{}` is NOT assignable to `Record<string, unknown>`';\n// => '✅ `{}` is assignable to `Record<string, unknown>`'\n\ntype Keyed = {} extends Record<'foo' | 'bar', unknown>\n\t? \"✅ `{}` is assignable to `Record<'foo' | 'bar', unknown>`\"\n\t: \"❌ `{}` is NOT assignable to `Record<'foo' | 'bar', unknown>`\";\n// => \"❌ `{}` is NOT assignable to `Record<'foo' | 'bar', unknown>`\"\n```\n\nUsing a [mapped type](https://www.typescriptlang.org/docs/handbook/2/mapped-types.html#further-exploration), you can then check for each `KeyType` of `ObjectType`...\n\n```\nimport type {RemoveIndexSignature} from 'type-fest';\n\ntype RemoveIndexSignature<ObjectType> = {\n\t[KeyType in keyof ObjectType // Map each key of `ObjectType`...\n\t]: ObjectType[KeyType]; // ...to its original value, i.e. `RemoveIndexSignature<Foo> == Foo`.\n};\n```\n\n...whether an empty object (`{}`) would be assignable to an object with that `KeyType` (`Record<KeyType, unknown>`)...\n\n```\nimport type {RemoveIndexSignature} from 'type-fest';\n\ntype RemoveIndexSignature<ObjectType> = {\n\t[KeyType in keyof ObjectType\n\t\t// Is `{}` assignable to `Record<KeyType, unknown>`?\n\t\tas {} extends Record<KeyType, unknown>\n\t\t\t? ... // ✅ `{}` is assignable to `Record<KeyType, unknown>`\n\t\t\t: ... // ❌ `{}` is NOT assignable to `Record<KeyType, unknown>`\n\t]: ObjectType[KeyType];\n};\n```\n\nIf `{}` is assignable, it means that `KeyType` is an index signature and we want to remove it. If it is not assignable, `KeyType` is a \"real\" key and we want to keep it.\n\n```\nimport type {RemoveIndexSignature} from 'type-fest';\n\ntype RemoveIndexSignature<ObjectType> = {\n\t[KeyType in keyof ObjectType\n\t\tas {} extends Record<KeyType, unknown>\n\t\t\t? never // => Remove this `KeyType`.\n\t\t\t: KeyType // => Keep this `KeyType` as it is.\n\t]: ObjectType[KeyType];\n};\n```\n\n@example\n```\nimport type {RemoveIndexSignature} from 'type-fest';\n\ninterface Example {\n\t// These index signatures will be removed.\n\t[x: string]: any\n\t[x: number]: any\n\t[x: symbol]: any\n\t[x: `head-${string}`]: string\n\t[x: `${string}-tail`]: string\n\t[x: `head-${string}-tail`]: string\n\t[x: `${bigint}`]: string\n\t[x: `embedded-${number}`]: string\n\n\t// These explicitly defined keys will remain.\n\tfoo: 'bar';\n\tqux?: 'baz';\n}\n\ntype ExampleWithoutIndexSignatures = RemoveIndexSignature<Example>;\n// => { foo: 'bar'; qux?: 'baz' | undefined; }\n```\n\n@category Object\n*/\ntype RemoveIndexSignature<ObjectType> = {\n\t[KeyType in keyof ObjectType as {} extends Record<KeyType, unknown>\n\t\t? never\n\t\t: KeyType]: ObjectType[KeyType];\n};\n\n/**\nConvert a union type to an intersection type using [distributive conditional types](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-8.html#distributive-conditional-types).\n\nInspired by [this Stack Overflow answer](https://stackoverflow.com/a/50375286/2172153).\n\n@example\n```\nimport type {UnionToIntersection} from 'type-fest';\n\ntype Union = {the(): void} | {great(arg: string): void} | {escape: boolean};\n\ntype Intersection = UnionToIntersection<Union>;\n//=> {the(): void; great(arg: string): void; escape: boolean};\n```\n\nA more applicable example which could make its way into your library code follows.\n\n@example\n```\nimport type {UnionToIntersection} from 'type-fest';\n\nclass CommandOne {\n\tcommands: {\n\t\ta1: () => undefined,\n\t\tb1: () => undefined,\n\t}\n}\n\nclass CommandTwo {\n\tcommands: {\n\t\ta2: (argA: string) => undefined,\n\t\tb2: (argB: string) => undefined,\n\t}\n}\n\nconst union = [new CommandOne(), new CommandTwo()].map(instance => instance.commands);\ntype Union = typeof union;\n//=> {a1(): void; b1(): void} | {a2(argA: string): void; b2(argB: string): void}\n\ntype Intersection = UnionToIntersection<Union>;\n//=> {a1(): void; b1(): void; a2(argA: string): void; b2(argB: string): void}\n```\n\n@category Type\n*/\ntype UnionToIntersection<Union> = (\n\t// `extends unknown` is always going to be the case and is used to convert the\n\t// `Union` into a [distributive conditional\n\t// type](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-2-8.html#distributive-conditional-types).\n\tUnion extends unknown\n\t\t// The union type is used as the only argument to a function since the union\n\t\t// of function arguments is an intersection.\n\t\t? (distributedUnion: Union) => void\n\t\t// This won't happen.\n\t\t: never\n\t\t// Infer the `Intersection` type since TypeScript represents the positional\n\t\t// arguments of unions of functions as an intersection of the union.\n\t) extends ((mergedIntersection: infer Intersection) => void)\n\t\t? Intersection\n\t\t: never;\n\ninterface SBBaseType {\n required?: boolean;\n raw?: string;\n}\ntype SBScalarType = SBBaseType & {\n name: 'boolean' | 'string' | 'number' | 'function' | 'symbol';\n};\ntype SBArrayType = SBBaseType & {\n name: 'array';\n value: SBType;\n};\ntype SBObjectType = SBBaseType & {\n name: 'object';\n value: Record<string, SBType>;\n};\ntype SBEnumType = SBBaseType & {\n name: 'enum';\n value: (string | number)[];\n};\ntype SBIntersectionType = SBBaseType & {\n name: 'intersection';\n value: SBType[];\n};\ntype SBUnionType = SBBaseType & {\n name: 'union';\n value: SBType[];\n};\ntype SBOtherType = SBBaseType & {\n name: 'other';\n value: string;\n};\ntype SBType = SBScalarType | SBEnumType | SBArrayType | SBObjectType | SBIntersectionType | SBUnionType | SBOtherType;\n\ntype StoryId = string;\ntype ComponentId = string;\ntype ComponentTitle = string;\ntype StoryName = string;\n/** @deprecated */\ntype StoryKind = ComponentTitle;\ntype Tag = string;\ninterface StoryIdentifier {\n componentId: ComponentId;\n title: ComponentTitle;\n /** @deprecated */\n kind: ComponentTitle;\n id: StoryId;\n name: StoryName;\n /** @deprecated */\n story: StoryName;\n tags: Tag[];\n}\ninterface Parameters {\n [name: string]: any;\n}\ninterface StrictParameters {\n [name: string]: unknown;\n}\ntype ControlType = 'object' | 'boolean' | 'check' | 'inline-check' | 'radio' | 'inline-radio' | 'select' | 'multi-select' | 'number' | 'range' | 'file' | 'color' | 'date' | 'text';\ntype ConditionalTest = {\n truthy?: boolean;\n} | {\n exists: boolean;\n} | {\n eq: any;\n} | {\n neq: any;\n};\ntype ConditionalValue = {\n arg: string;\n} | {\n global: string;\n};\ntype Conditional = ConditionalValue & ConditionalTest;\ninterface ControlBase {\n [key: string]: any;\n /** @see https://storybook.js.org/docs/api/arg-types#controltype */\n type?: ControlType;\n disable?: boolean;\n}\ninterface Report {\n type: string;\n version?: number;\n result: unknown;\n status: 'failed' | 'passed' | 'warning';\n}\ninterface ReportingAPI {\n reports: Report[];\n addReport: (report: Report) => void;\n}\ntype Control = ControlType | false | (ControlBase & (ControlBase | {\n type: 'color';\n /** @see https://storybook.js.org/docs/api/arg-types#controlpresetcolors */\n presetColors?: string[];\n} | {\n type: 'file';\n /** @see https://storybook.js.org/docs/api/arg-types#controlaccept */\n accept?: string;\n} | {\n type: 'inline-check' | 'radio' | 'inline-radio' | 'select' | 'multi-select';\n /** @see https://storybook.js.org/docs/api/arg-types#controllabels */\n labels?: {\n [options: string]: string;\n };\n} | {\n type: 'number' | 'range';\n /** @see https://storybook.js.org/docs/api/arg-types#controlmax */\n max?: number;\n /** @see https://storybook.js.org/docs/api/arg-types#controlmin */\n min?: number;\n /** @see https://storybook.js.org/docs/api/arg-types#controlstep */\n step?: number;\n}));\ninterface InputType {\n /** @see https://storybook.js.org/docs/api/arg-types#control */\n control?: Control;\n /** @see https://storybook.js.org/docs/api/arg-types#description */\n description?: string;\n /** @see https://storybook.js.org/docs/api/arg-types#if */\n if?: Conditional;\n /** @see https://storybook.js.org/docs/api/arg-types#mapping */\n mapping?: {\n [key: string]: any;\n };\n /** @see https://storybook.js.org/docs/api/arg-types#name */\n name?: string;\n /** @see https://storybook.js.org/docs/api/arg-types#options */\n options?: readonly any[];\n /** @see https://storybook.js.org/docs/api/arg-types#table */\n table?: {\n [key: string]: unknown;\n /** @see https://storybook.js.org/docs/api/arg-types#tablecategory */\n category?: string;\n /** @see https://storybook.js.org/docs/api/arg-types#tabledefaultvalue */\n defaultValue?: {\n summary?: string;\n detail?: string;\n };\n /** @see https://storybook.js.org/docs/api/arg-types#tabledisable */\n disable?: boolean;\n /** @see https://storybook.js.org/docs/api/arg-types#tablesubcategory */\n subcategory?: string;\n /** @see https://storybook.js.org/docs/api/arg-types#tabletype */\n type?: {\n summary?: string;\n detail?: string;\n };\n };\n /** @see https://storybook.js.org/docs/api/arg-types#type */\n type?: SBType | SBScalarType['name'];\n /**\n * @deprecated Use `table.defaultValue.summary` instead.\n * @see https://storybook.js.org/docs/api/arg-types#defaultvalue\n */\n defaultValue?: any;\n [key: string]: any;\n}\ninterface StrictInputType extends InputType {\n name: string;\n type?: SBType;\n}\ninterface Args {\n [name: string]: any;\n}\ninterface StrictArgs {\n [name: string]: unknown;\n}\n/** @see https://storybook.js.org/docs/api/arg-types#argtypes */\ntype ArgTypes<TArgs = Args> = {\n [name in keyof TArgs]: InputType;\n};\ntype StrictArgTypes<TArgs = Args> = {\n [name in keyof TArgs]: StrictInputType;\n};\ninterface Globals {\n [name: string]: any;\n}\ninterface GlobalTypes {\n [name: string]: InputType;\n}\ninterface StrictGlobalTypes {\n [name: string]: StrictInputType;\n}\ninterface Renderer {\n /** What is the type of the `component` annotation in this renderer? */\n component: any;\n /** What does the story function return in this renderer? */\n storyResult: any;\n /** What type of element does this renderer render to? */\n canvasElement: any;\n mount(): Promise<Canvas>;\n T?: any;\n}\n/** @deprecated - Use `Renderer` */\ntype AnyFramework = Renderer;\ninterface StoryContextForEnhancers<TRenderer extends Renderer = Renderer, TArgs = Args> extends StoryIdentifier {\n component?: (TRenderer & {\n T: any;\n })['component'];\n subcomponents?: Record<string, (TRenderer & {\n T: any;\n })['component']>;\n parameters: Parameters;\n initialArgs: TArgs;\n argTypes: StrictArgTypes<TArgs>;\n}\ntype ArgsEnhancer<TRenderer extends Renderer = Renderer, TArgs = Args> = (context: StoryContextForEnhancers<TRenderer, TArgs>) => TArgs;\ntype ArgTypesEnhancer<TRenderer extends Renderer = Renderer, TArgs = Args> = ((context: StoryContextForEnhancers<TRenderer, TArgs>) => StrictArgTypes<TArgs>) & {\n secondPass?: boolean;\n};\ninterface StoryContextUpdate<TArgs = Args> {\n args?: TArgs;\n globals?: Globals;\n [key: string]: any;\n}\ntype ViewMode = 'story' | 'docs';\ntype LoaderFunction<TRenderer extends Renderer = Renderer, TArgs = Args> = (context: StoryContextForLoaders<TRenderer, TArgs>) => Promise<Record<string, any> | void> | Record<string, any> | void;\ntype Awaitable<T> = T | PromiseLike<T>;\ntype CleanupCallback = () => Awaitable<unknown>;\ntype BeforeAll = () => Awaitable<CleanupCallback | void>;\ntype BeforeEach<TRenderer extends Renderer = Renderer, TArgs = Args> = (context: StoryContext<TRenderer, TArgs>) => Awaitable<CleanupCallback | void>;\ntype AfterEach<TRenderer extends Renderer = Renderer, TArgs = Args> = (context: StoryContext<TRenderer, TArgs>) => Awaitable<void>;\ninterface Canvas {\n}\ninterface StoryContext<TRenderer extends Renderer = Renderer, TArgs = Args> extends StoryContextForEnhancers<TRenderer, TArgs>, Required<StoryContextUpdate<TArgs>> {\n loaded: Record<string, any>;\n abortSignal: AbortSignal;\n canvasElement: TRenderer['canvasElement'];\n hooks: unknown;\n originalStoryFn: StoryFn<TRenderer>;\n viewMode: ViewMode;\n step: StepFunction<TRenderer, TArgs>;\n context: this;\n canvas: Canvas;\n mount: TRenderer['mount'];\n reporting: ReportingAPI;\n}\n/** @deprecated Use {@link StoryContext} instead. */\ninterface StoryContextForLoaders<TRenderer extends Renderer = Renderer, TArgs = Args> extends StoryContext<TRenderer, TArgs> {\n}\n/** @deprecated Use {@link StoryContext} instead. */\ninterface PlayFunctionContext<TRenderer extends Renderer = Renderer, TArgs = Args> extends StoryContext<TRenderer, TArgs> {\n}\ntype StepLabel = string;\ntype StepFunction<TRenderer extends Renderer = Renderer, TArgs = Args> = (label: StepLabel, play: PlayFunction<TRenderer, TArgs>) => Promise<void> | void;\ntype PlayFunction<TRenderer extends Renderer = Renderer, TArgs = Args> = (context: PlayFunctionContext<TRenderer, TArgs>) => Promise<void> | void;\ntype PartialStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = (update?: StoryContextUpdate<Partial<TArgs>>) => TRenderer['storyResult'];\ntype LegacyStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = (context: StoryContext<TRenderer, TArgs>) => TRenderer['storyResult'];\ntype ArgsStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = (args: TArgs, context: StoryContext<TRenderer, TArgs>) => (TRenderer & {\n T: TArgs;\n})['storyResult'];\ntype StoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = LegacyStoryFn<TRenderer, TArgs> | ArgsStoryFn<TRenderer, TArgs>;\ntype DecoratorFunction<TRenderer extends Renderer = Renderer, TArgs = Args> = (fn: PartialStoryFn<TRenderer, TArgs>, c: StoryContext<TRenderer, TArgs>) => TRenderer['storyResult'];\ntype DecoratorApplicator<TRenderer extends Renderer = Renderer, TArgs = Args> = (storyFn: LegacyStoryFn<TRenderer, TArgs>, decorators: DecoratorFunction<TRenderer, TArgs>[]) => LegacyStoryFn<TRenderer, TArgs>;\ntype StepRunner<TRenderer extends Renderer = Renderer, TArgs = Args> = (label: StepLabel, play: PlayFunction<TRenderer, TArgs>, context: StoryContext<TRenderer, TArgs>) => Promise<void>;\ninterface BaseAnnotations<TRenderer extends Renderer = Renderer, TArgs = Args> {\n /**\n * Wrapper components or Storybook decorators that wrap a story.\n *\n * Decorators defined in Meta will be applied to every story variation.\n *\n * @see [Decorators](https://storybook.js.org/docs/writing-stories/decorators)\n */\n decorators?: DecoratorFunction<TRenderer, Simplify<TArgs>>[] | DecoratorFunction<TRenderer, Simplify<TArgs>>;\n /**\n * Custom metadata for a story.\n *\n * @see [Parameters](https://storybook.js.org/docs/writing-stories/parameters)\n */\n parameters?: Parameters;\n /**\n * Dynamic data that are provided (and possibly updated by) Storybook and its addons.\n *\n * @see [Args](https://storybook.js.org/docs/writing-stories/args)\n */\n args?: Partial<TArgs>;\n /**\n * ArgTypes encode basic metadata for args, such as `name`, `description`, `defaultValue` for an\n * arg. These get automatically filled in by Storybook Docs.\n *\n * @see [ArgTypes](https://storybook.js.org/docs/api/arg-types)\n */\n argTypes?: Partial<ArgTypes<TArgs>>;\n /**\n * Asynchronous functions which provide data for a story.\n *\n * @see [Loaders](https://storybook.js.org/docs/writing-stories/loaders)\n */\n loaders?: LoaderFunction<TRenderer, TArgs>[] | LoaderFunction<TRenderer, TArgs>;\n /**\n * Function to be called before each story. When the function is async, it will be awaited.\n *\n * `beforeEach` can be added to preview, the default export and to a specific story. They are run\n * (and awaited) in the order: preview, default export, story\n *\n * A cleanup function can be returned.\n */\n beforeEach?: BeforeEach<TRenderer, TArgs>[] | BeforeEach<TRenderer, TArgs>;\n /**\n * Function to be called after each play function for post-test assertions. Don't use this\n * function for cleaning up state. You can use the return callback of `beforeEach` for that, which\n * is run when switching stories. When the function is async, it will be awaited.\n *\n * `afterEach` can be added to preview, the default export and to a specific story. They are run\n * (and awaited) reverse order: preview, default export, story\n */\n experimental_afterEach?: AfterEach<TRenderer, TArgs>[] | AfterEach<TRenderer, TArgs>;\n /**\n * Define a custom render function for the story(ies). If not passed, a default render function by\n * the renderer will be used.\n */\n render?: ArgsStoryFn<TRenderer, TArgs>;\n /** Named tags for a story, used to filter stories in different contexts. */\n tags?: Tag[];\n mount?: (context: StoryContext<TRenderer, TArgs>) => TRenderer['mount'];\n}\ninterface ProjectAnnotations<TRenderer extends Renderer = Renderer, TArgs = Args> extends BaseAnnotations<TRenderer, TArgs> {\n argsEnhancers?: ArgsEnhancer<TRenderer, Args>[];\n argTypesEnhancers?: ArgTypesEnhancer<TRenderer, Args>[];\n /**\n * Lifecycle hook which runs once, before any loaders, decorators or stories, and may rerun when\n * configuration changes or when reinitializing (e.g. between test runs). The function may be\n * synchronous or asynchronous, and may return a cleanup function which may also be synchronous or\n * asynchronous. The cleanup function is not guaranteed to run (e.g. when the browser closes), but\n * runs when configuration changes or when reinitializing. This hook may only be defined globally\n * (i.e. not on component or story level). When multiple hooks are specified, they are to be\n * executed sequentially (and awaited) in the following order:\n *\n * - Addon hooks (in order of addons array in e.g. .storybook/main.js)\n * - Annotation hooks (in order of previewAnnotations array in e.g. .storybook/main.js)\n * - Preview hook (via e.g. .storybook/preview.js) Cleanup functions are executed sequentially in\n * reverse order of initialization.\n */\n beforeAll?: BeforeAll;\n /** @deprecated Project `globals` renamed to `initiaGlobals` */\n globals?: Globals;\n initialGlobals?: Globals;\n globalTypes?: GlobalTypes;\n applyDecorators?: DecoratorApplicator<TRenderer, Args>;\n runStep?: StepRunner<TRenderer, TArgs>;\n}\ntype StoryDescriptor$1 = string[] | RegExp;\ninterface ComponentAnnotations<TRenderer extends Renderer = Renderer, TArgs = Args> extends BaseAnnotations<TRenderer, TArgs> {\n /**\n * Title of the component which will be presented in the navigation. **Should be unique.**\n *\n * Components can be organized in a nested structure using \"/\" as a separator.\n *\n * Since CSF 3.0 this property is optional -- it can be inferred from the filesystem path\n *\n * @example Export default { ... title: 'Design System/Atoms/Button' }\n *\n * @see [Story Hierarchy](https://storybook.js.org/docs/writing-stories/naming-components-and-hierarchy#structure-and-hierarchy)\n */\n title?: ComponentTitle;\n /**\n * Id of the component (prefix of the story id) which is used for URLs.\n *\n * By default is inferred from sanitizing the title\n *\n * @see [Permalink to stories](https://storybook.js.org/docs/configure/sidebar-and-urls#permalink-to-stories)\n */\n id?: ComponentId;\n /**\n * Used to only include certain named exports as stories. Useful when you want to have non-story\n * exports such as mock data or ignore a few stories.\n *\n * @example IncludeStories: ['SimpleStory', 'ComplexStory'] includeStories: /.*Story$/\n *\n * @see [Non-story exports](https://storybook.js.org/docs/api/csf#non-story-exports)\n */\n includeStories?: StoryDescriptor$1;\n /**\n * Used to exclude certain named exports. Useful when you want to have non-story exports such as\n * mock data or ignore a few stories.\n *\n * @example ExcludeStories: ['simpleData', 'complexData'] excludeStories: /.*Data$/\n *\n * @see [Non-story exports](https://storybook.js.org/docs/api/csf#non-story-exports)\n */\n excludeStories?: StoryDescriptor$1;\n /**\n * The primary component for your story.\n *\n * Used by addons for automatic prop table generation and display of other component metadata.\n */\n component?: (TRenderer & {\n T: Record<string, unknown> extends Required<TArgs> ? any : TArgs;\n })['component'];\n /**\n * Auxiliary subcomponents that are part of the stories.\n *\n * Used by addons for automatic prop table generation and display of other component metadata.\n *\n * @example Import { Button, ButtonGroup } from './components';\n *\n * Export default { ... subcomponents: { Button, ButtonGroup } }\n *\n * By defining them each component will have its tab in the args table.\n */\n subcomponents?: Record<string, TRenderer['component']>;\n /** Function that is executed after the story is rendered. */\n play?: PlayFunction<TRenderer, TArgs>;\n /** Override the globals values for all stories in this component */\n globals?: Globals;\n}\ntype StoryAnnotations<TRenderer extends Renderer = Renderer, TArgs = Args, TRequiredArgs = Partial<TArgs>> = BaseAnnotations<TRenderer, TArgs> & {\n /** Override the display name in the UI (CSF v3) */\n name?: StoryName;\n /** Override the display name in the UI (CSF v2) */\n storyName?: StoryName;\n /** Function that is executed after the story is rendered. */\n play?: PlayFunction<TRenderer, TArgs>;\n /** Override the globals values for this story */\n globals?: Globals;\n /** @deprecated */\n story?: Omit<StoryAnnotations<TRenderer, TArgs>, 'story'>;\n} & ({} extends TRequiredArgs ? {\n args?: TRequiredArgs;\n} : {\n args: TRequiredArgs;\n});\ntype LegacyAnnotatedStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = StoryFn<TRenderer, TArgs> & StoryAnnotations<TRenderer, TArgs>;\ntype LegacyStoryAnnotationsOrFn<TRenderer extends Renderer = Renderer, TArgs = Args> = LegacyAnnotatedStoryFn<TRenderer, TArgs> | StoryAnnotations<TRenderer, TArgs>;\ntype AnnotatedStoryFn<TRenderer extends Renderer = Renderer, TArgs = Args> = ArgsStoryFn<TRenderer, TArgs> & StoryAnnotations<TRenderer, TArgs>;\ntype StoryAnnotationsOrFn<TRenderer extends Renderer = Renderer, TArgs = Args> = AnnotatedStoryFn<TRenderer, TArgs> | StoryAnnotations<TRenderer, TArgs>;\ntype ArgsFromMeta<TRenderer extends Renderer, Meta> = Meta extends {\n render?: ArgsStoryFn<TRenderer, infer RArgs>;\n loaders?: (infer Loaders)[] | infer Loaders;\n decorators?: (infer Decorators)[] | infer Decorators;\n} ? Simplify<RemoveIndexSignature<RArgs & DecoratorsArgs<TRenderer, Decorators> & LoaderArgs<TRenderer, Loaders>>> : unknown;\ntype DecoratorsArgs<TRenderer extends Renderer, Decorators> = UnionToIntersection<Decorators extends DecoratorFunction<TRenderer, infer TArgs> ? TArgs : unknown>;\ntype LoaderArgs<TRenderer extends Renderer, Loaders> = UnionToIntersection<Loaders extends LoaderFunction<TRenderer, infer TArgs> ? TArgs : unknown>;\n\n/**\n * Helper function to include/exclude an arg based on the value of other other args aka \"conditional\n * args\"\n */\ndeclare const includeConditionalArg: (argType: InputType, args: Args, globals: Globals) => any;\n\ninterface Preview<TRenderer extends Renderer$1 = Renderer$1> {\n readonly _tag: 'Preview';\n input: ProjectAnnotations$1<TRenderer>;\n composed: NormalizedProjectAnnotations<TRenderer>;\n meta(input: ComponentAnnotations$1<TRenderer>): Meta<TRenderer>;\n}\n/** Do not use, use the definePreview exported from the framework instead. */\ndeclare function __definePreview<TRenderer extends Renderer$1>(input: Preview<TRenderer>['input']): Preview<TRenderer>;\ndeclare function isPreview(input: unknown): input is Preview<Renderer$1>;\ninterface Meta<TRenderer extends Renderer$1, TArgs extends Args$1 = Args$1> {\n readonly _tag: 'Meta';\n input: ComponentAnnotations$1<TRenderer, TArgs>;\n composed: NormalizedComponentAnnotations<TRenderer>;\n preview: Preview<TRenderer>;\n story(input: StoryAnnotations$1<TRenderer, TArgs>): Story<TRenderer, TArgs>;\n}\ndeclare function isMeta(input: unknown): input is Meta<Renderer$1>;\ninterface Story<TRenderer extends Renderer$1, TArgs extends Args$1 = Args$1> {\n readonly _tag: 'Story';\n input: StoryAnnotations$1<TRenderer, TArgs>;\n composed: NormalizedStoryAnnotations<TRenderer>;\n meta: Meta<TRenderer, TArgs>;\n}\ndeclare function isStory<TRenderer extends Renderer$1>(input: unknown): input is Story<TRenderer>;\n\n/**\n * Remove punctuation and illegal characters from a story ID.\n *\n * See https://gist.github.com/davidjrice/9d2af51100e41c6c4b4a\n */\ndeclare const sanitize: (string: string) => string;\n/** Generate a storybook ID from a component/kind and story name. */\ndeclare const toId: (kind: string, name?: string) => string;\n/** Transform a CSF named export into a readable story name */\ndeclare const storyNameFromExport: (key: string) => string;\ntype StoryDescriptor = string[] | RegExp;\ninterface IncludeExcludeOptions {\n includeStories?: StoryDescriptor;\n excludeStories?: StoryDescriptor;\n}\n/** Does a named export match CSF inclusion/exclusion options? */\ndeclare function isExportStory(key: string, { includeStories, excludeStories }: IncludeExcludeOptions): boolean | null;\ninterface SeparatorOptions {\n rootSeparator: string | RegExp;\n groupSeparator: string | RegExp;\n}\n/** Parse out the component/kind name from a path, using the given separator config. */\ndeclare const parseKind: (kind: string, { rootSeparator, groupSeparator }: SeparatorOptions) => {\n root: string | null;\n groups: string[];\n};\n/** Combine a set of project / meta / story tags, removing duplicates and handling negations. */\ndeclare const combineTags: (...tags: string[]) => string[];\n\nexport { type AfterEach, type AnnotatedStoryFn, type AnyFramework, type ArgTypes, type ArgTypesEnhancer, type Args, type ArgsEnhancer, type ArgsFromMeta, type ArgsStoryFn, type BaseAnnotations, type BeforeAll, type BeforeEach, type Canvas, type CleanupCallback, type ComponentAnnotations, type ComponentId, type ComponentTitle, type Conditional, type DecoratorApplicator, type DecoratorFunction, type GlobalTypes, type Globals, type IncludeExcludeOptions, type InputType, type LegacyAnnotatedStoryFn, type LegacyStoryAnnotationsOrFn, type LegacyStoryFn, type LoaderFunction, type Meta, type Parameters, type PartialStoryFn, type PlayFunction, type PlayFunctionContext, type Preview, type ProjectAnnotations, type Renderer, type SBArrayType, type SBEnumType, type SBIntersectionType, type SBObjectType, type SBOtherType, type SBScalarType, type SBType, type SBUnionType, type SeparatorOptions, type StepFunction, type StepLabel, type StepRunner, type Story, type StoryAnnotations, type StoryAnnotationsOrFn, type StoryContext, type StoryContextForEnhancers, type StoryContextForLoaders, type StoryContextUpdate, type StoryFn, type StoryId, type StoryIdentifier, type StoryKind, type StoryName, type StrictArgTypes, type StrictArgs, type StrictGlobalTypes, type StrictInputType, type StrictParameters, type Tag, type ViewMode, __definePreview, combineTags, includeConditionalArg, isExportStory, isMeta, isPreview, isStory, parseKind, sanitize, storyNameFromExport, toId };\n","import { Tag as Tag$1, Parameters, StoryId, StoryName, ComponentTitle, Args, ArgTypes, ComponentId, StoryKind, Globals, GlobalTypes, InputType, StoryContext, PartialStoryFn, LegacyStoryFn, ArgsStoryFn, StoryFn, DecoratorFunction, LoaderFunction, Renderer as Renderer$1, ViewMode as ViewMode$1, ProjectAnnotations as ProjectAnnotations$2, StrictArgTypes, StrictGlobalTypes, StepRunner, BeforeAll, ComponentAnnotations, StoryAnnotations, StoryContextForEnhancers, CleanupCallback, Canvas, StoryIdentifier, StoryAnnotationsOrFn, AnnotatedStoryFn } from '@storybook/core/csf';\nexport { AfterEach, AnnotatedStoryFn, ArgTypes, ArgTypesEnhancer, Args, ArgsEnhancer, ArgsFromMeta, ArgsStoryFn, BaseAnnotations, ProjectAnnotations as BaseProjectAnnotations, BeforeAll, BeforeEach, Canvas, CleanupCallback, ComponentAnnotations, ComponentId, ComponentTitle, Conditional, DecoratorApplicator, DecoratorFunction, GlobalTypes, Globals, IncludeExcludeOptions, InputType, LegacyAnnotatedStoryFn, LegacyStoryAnnotationsOrFn, LegacyStoryFn, LoaderFunction, Parameters, PartialStoryFn, PlayFunction, PlayFunctionContext, SBArrayType, SBEnumType, SBIntersectionType, SBObjectType, SBOtherType, SBScalarType, SBType, SBUnionType, SeparatorOptions, StepFunction, StepLabel, StepRunner, StoryAnnotations, StoryAnnotationsOrFn, StoryContext, StoryContextForEnhancers, StoryContextForLoaders, StoryContextUpdate, StoryFn, StoryId, StoryIdentifier, StoryKind, StoryName, StrictArgTypes, StrictArgs, StrictGlobalTypes, StrictInputType, Tag } from '@storybook/core/csf';\nimport { ReactElement, FC, ReactNode, PropsWithChildren } from 'react';\nimport { Addon_TestProviderType as Addon_TestProviderType$1, NormalizedProjectAnnotations as NormalizedProjectAnnotations$1, ProjectAnnotations as ProjectAnnotations$1, ComposedStoryFn as ComposedStoryFn$1 } from '@storybook/core/types';\nimport { Server, IncomingMessage, ServerResponse } from 'http';\nimport { Server as Server$1 } from 'net';\nimport { Channel as Channel$1 } from '@storybook/core/channels';\n\ntype DateNow = number;\ntype TestProviderConfig = Addon_TestProviderType$1;\ntype TestingModuleProgressReportProgress = {\n startedAt: DateNow;\n finishedAt?: DateNow;\n numTotalTests?: number;\n numPassedTests?: number;\n numFailedTests?: number;\n numPendingTests?: number;\n percentageCompleted?: number;\n};\n\ndeclare global {\n var globalProjectAnnotations: NormalizedProjectAnnotations$1<any>;\n var defaultProjectAnnotations: ProjectAnnotations$1<any>;\n}\ntype WrappedStoryRef = {\n __pw_type: 'jsx' | 'importRef';\n};\ntype UnwrappedJSXStoryRef = {\n __pw_type: 'jsx';\n type: UnwrappedImportStoryRef;\n};\ntype UnwrappedImportStoryRef = ComposedStoryFn$1;\ndeclare global {\n function __pwUnwrapObject(storyRef: WrappedStoryRef): Promise<UnwrappedJSXStoryRef | UnwrappedImportStoryRef>;\n}\n\ninterface Report<T = unknown> {\n type: string;\n version?: number;\n result: T;\n status: 'failed' | 'passed' | 'warning';\n}\ndeclare class ReporterAPI {\n reports: Report[];\n addReport(report: Report): Promise<void>;\n}\n\n/**\r\n * A URL pathname, beginning with a /.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#location.pathname\r\n */\r\ndeclare type Pathname = string;\r\n/**\r\n * A URL search string, beginning with a ?.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#location.search\r\n */\r\ndeclare type Search = string;\r\n/**\r\n * A URL fragment identifier, beginning with a #.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#location.hash\r\n */\r\ndeclare type Hash = string;\r\n/**\r\n * A unique string associated with a location. May be used to safely store\r\n * and retrieve data in some other storage API, like `localStorage`.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#location.key\r\n */\r\ndeclare type Key = string;\r\n/**\r\n * The pathname, search, and hash values of a URL.\r\n */\r\ninterface Path$1 {\r\n /**\r\n * A URL pathname, beginning with a /.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#location.pathname\r\n */\r\n pathname: Pathname;\r\n /**\r\n * A URL search string, beginning with a ?.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#location.search\r\n */\r\n search: Search;\r\n /**\r\n * A URL fragment identifier, beginning with a #.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#location.hash\r\n */\r\n hash: Hash;\r\n}\r\n/**\r\n * An entry in a history stack. A location contains information about the\r\n * URL path, as well as possibly some arbitrary state and a key.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#location\r\n */\r\ninterface Location extends Path$1 {\r\n /**\r\n * A value of arbitrary data associated with this location.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#location.state\r\n */\r\n state: unknown;\r\n /**\r\n * A unique string associated with this location. May be used to safely store\r\n * and retrieve data in some other storage API, like `localStorage`.\r\n *\r\n * Note: This value is always \"default\" on the initial location.\r\n *\r\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#location.key\r\n */\r\n key: Key;\r\n}\r\n/**\r\n * Describes a location that is the destination of some navigation, either via\r\n * `history.push` or `history.replace`. May be either a URL or the pieces of a\r\n * URL path.\r\n */\r\ndeclare type To = string | Partial<Path$1>;\n\ninterface NavigateOptions$1 {\n replace?: boolean;\n state?: any;\n}\n\ninterface StoryData {\n viewMode?: string;\n storyId?: string;\n refId?: string;\n}\n\ninterface Other extends StoryData {\n path: string;\n singleStory?: boolean;\n}\ntype NavigateOptions = NavigateOptions$1 & {\n plain?: boolean;\n};\ntype NavigateFunction = (to: To | number, options?: NavigateOptions) => void;\ntype RouterData = {\n location: Partial<Location>;\n navigate: NavigateFunction;\n} & Other;\ntype RenderData = Pick<RouterData, 'location'> & Other;\n\ninterface ThemeVars extends ThemeVarsBase, ThemeVarsColors {\n}\ninterface ThemeVarsBase {\n base: 'light' | 'dark';\n}\ninterface ThemeVarsColors {\n colorPrimary: string;\n colorSecondary: string;\n appBg: string;\n appContentBg: string;\n appPreviewBg: string;\n appBorderColor: string;\n appBorderRadius: number;\n fontBase: string;\n fontCode: string;\n textColor: string;\n textInverseColor: string;\n textMutedColor: string;\n barTextColor: string;\n barHoverColor: string;\n barSelectedColor: string;\n barBg: string;\n buttonBg: string;\n buttonBorder: string;\n booleanBg: string;\n booleanSelectedBg: string;\n inputBg: string;\n inputBorder: string;\n inputTextColor: string;\n inputBorderRadius: number;\n brandTitle?: string;\n brandUrl?: string;\n brandImage?: string;\n brandTarget?: string;\n gridCellSize?: number;\n}\n\ntype ChannelHandler = (event: ChannelEvent) => void;\ninterface ChannelTransport {\n send(event: ChannelEvent, options?: any): void;\n setHandler(handler: ChannelHandler): void;\n}\ninterface ChannelEvent {\n type: string;\n from: string;\n args: any[];\n}\ninterface Listener {\n (...args: any[]): void;\n}\ninterface ChannelArgsSingle {\n transport?: ChannelTransport;\n async?: boolean;\n}\ninterface ChannelArgsMulti {\n transports: ChannelTransport[];\n async?: boolean;\n}\n\ndeclare class Channel {\n readonly isAsync: boolean;\n private sender;\n private events;\n private data;\n private readonly transports;\n constructor(input: ChannelArgsMulti);\n constructor(input: ChannelArgsSingle);\n get hasTransport(): boolean;\n addListener(eventName: string, listener: Listener): void;\n emit(eventName: string, ...args: any): void;\n last(eventName: string): any;\n eventNames(): string[];\n listenerCount(eventName: string): number;\n listeners(eventName: string): Listener[] | undefined;\n once(eventName: string, listener: Listener): void;\n removeAllListeners(eventName?: string): void;\n removeListener(eventName: string, listener: Listener): void;\n on(eventName: string, listener: Listener): void;\n off(eventName: string, listener: Listener): void;\n private handleEvent;\n private onceListener;\n}\n\ninterface Options$1 {\n allowRegExp: boolean;\n allowFunction: boolean;\n allowSymbol: boolean;\n allowDate: boolean;\n allowUndefined: boolean;\n allowClass: boolean;\n allowError: boolean;\n maxDepth: number;\n space: number | undefined;\n lazyEval: boolean;\n}\n\n/**\nMatches any [primitive value](https://developer.mozilla.org/en-US/docs/Glossary/Primitive).\n\n@category Type\n*/\ntype Primitive =\n\t| null\n\t| undefined\n\t| string\n\t| number\n\t| boolean\n\t| symbol\n\t| bigint;\n\ndeclare global {\n\tinterface SymbolConstructor {\n\t\treadonly observable: symbol;\n\t}\n}\n\n/**\nAllows creating a union type by combining primitive types and literal types without sacrificing auto-completion in IDEs for the literal type part of the union.\n\nCurrently, when a union type of a primitive type is combined with literal types, TypeScript loses all information about the combined literals. Thus, when such type is used in an IDE with autocompletion, no suggestions are made for the declared literals.\n\nThis type is a workaround for [Microsoft/TypeScript#29729](https://github.com/Microsoft/TypeScript/issues/29729). It will be removed as soon as it's not needed anymore.\n\n@example\n```\nimport type {LiteralUnion} from 'type-fest';\n\n// Before\n\ntype Pet = 'dog' | 'cat' | string;\n\nconst pet: Pet = '';\n// Start typing in your TypeScript-enabled IDE.\n// You **will not** get auto-completion for `dog` and `cat` literals.\n\n// After\n\ntype Pet2 = LiteralUnion<'dog' | 'cat', string>;\n\nconst pet: Pet2 = '';\n// You **will** get auto-completion for `dog` and `cat` literals.\n```\n\n@category Type\n*/\ntype LiteralUnion<\n\tLiteralType,\n\tBaseType extends Primitive,\n> = LiteralType | (BaseType & Record<never, never>);\n\ndeclare namespace PackageJson$1 {\n\t/**\n\tA person who has been involved in creating or maintaining the package.\n\t*/\n\texport type Person =\n\t\t| string\n\t\t| {\n\t\t\tname: string;\n\t\t\turl?: string;\n\t\t\temail?: string;\n\t\t};\n\n\texport type BugsLocation =\n\t\t| string\n\t\t| {\n\t\t\t/**\n\t\t\tThe URL to the package's issue tracker.\n\t\t\t*/\n\t\t\turl?: string;\n\n\t\t\t/**\n\t\t\tThe email address to which issues should be reported.\n\t\t\t*/\n\t\t\temail?: string;\n\t\t};\n\n\texport interface DirectoryLocations {\n\t\t[directoryType: string]: unknown;\n\n\t\t/**\n\t\tLocation for executable scripts. Sugar to generate entries in the `bin` property by walking the folder.\n\t\t*/\n\t\tbin?: string;\n\n\t\t/**\n\t\tLocation for Markdown files.\n\t\t*/\n\t\tdoc?: string;\n\n\t\t/**\n\t\tLocation for example scripts.\n\t\t*/\n\t\texample?: string;\n\n\t\t/**\n\t\tLocation for the bulk of the library.\n\t\t*/\n\t\tlib?: string;\n\n\t\t/**\n\t\tLocation for man pages. Sugar to generate a `man` array by walking the folder.\n\t\t*/\n\t\tman?: string;\n\n\t\t/**\n\t\tLocation for test files.\n\t\t*/\n\t\ttest?: string;\n\t}\n\n\texport type Scripts = {\n\t\t/**\n\t\tRun **before** the package is published (Also run on local `npm install` without any arguments).\n\t\t*/\n\t\tprepublish?: string;\n\n\t\t/**\n\t\tRun both **before** the package is packed and published, and on local `npm install` without any arguments. This is run **after** `prepublish`, but **before** `prepublishOnly`.\n\t\t*/\n\t\tprepare?: string;\n\n\t\t/**\n\t\tRun **before** the package is prepared and packed, **only** on `npm publish`.\n\t\t*/\n\t\tprepublishOnly?: string;\n\n\t\t/**\n\t\tRun **before** a tarball is packed (on `npm pack`, `npm publish`, and when installing git dependencies).\n\t\t*/\n\t\tprepack?: string;\n\n\t\t/**\n\t\tRun **after** the tarball has been generated and moved to its final destination.\n\t\t*/\n\t\tpostpack?: string;\n\n\t\t/**\n\t\tRun **after** the package is published.\n\t\t*/\n\t\tpublish?: string;\n\n\t\t/**\n\t\tRun **after** the package is published.\n\t\t*/\n\t\tpostpublish?: string;\n\n\t\t/**\n\t\tRun **before** the package is installed.\n\t\t*/\n\t\tpreinstall?: string;\n\n\t\t/**\n\t\tRun **after** the package is installed.\n\t\t*/\n\t\tinstall?: string;\n\n\t\t/**\n\t\tRun **after** the package is installed and after `install`.\n\t\t*/\n\t\tpostinstall?: string;\n\n\t\t/**\n\t\tRun **before** the package is uninstalled and before `uninstall`.\n\t\t*/\n\t\tpreuninstall?: string;\n\n\t\t/**\n\t\tRun **before** the package is uninstalled.\n\t\t*/\n\t\tuninstall?: string;\n\n\t\t/**\n\t\tRun **after** the package is uninstalled.\n\t\t*/\n\t\tpostuninstall?: string;\n\n\t\t/**\n\t\tRun **before** bump the package version and before `version`.\n\t\t*/\n\t\tpreversion?: string;\n\n\t\t/**\n\t\tRun **before** bump the package version.\n\t\t*/\n\t\tversion?: string;\n\n\t\t/**\n\t\tRun **after** bump the package version.\n\t\t*/\n\t\tpostversion?: string;\n\n\t\t/**\n\t\tRun with the `npm test` command, before `test`.\n\t\t*/\n\t\tpretest?: string;\n\n\t\t/**\n\t\tRun with the `npm test` command.\n\t\t*/\n\t\ttest?: string;\n\n\t\t/**\n\t\tRun with the `npm test` command, after `test`.\n\t\t*/\n\t\tposttest?: string;\n\n\t\t/**\n\t\tRun with the `npm stop` command, before `stop`.\n\t\t*/\n\t\tprestop?: string;\n\n\t\t/**\n\t\tRun with the `npm stop` command.\n\t\t*/\n\t\tstop?: string;\n\n\t\t/**\n\t\tRun with the `npm stop` command, after `stop`.\n\t\t*/\n\t\tpoststop?: string;\n\n\t\t/**\n\t\tRun with the `npm start` command, before `start`.\n\t\t*/\n\t\tprestart?: string;\n\n\t\t/**\n\t\tRun with the `npm start` command.\n\t\t*/\n\t\tstart?: string;\n\n\t\t/**\n\t\tRun with the `npm start` command, after `start`.\n\t\t*/\n\t\tpoststart?: string;\n\n\t\t/**\n\t\tRun with the `npm restart` command, before `restart`. Note: `npm restart` will run the `stop` and `start` scripts if no `restart` script is provided.\n\t\t*/\n\t\tprerestart?: string;\n\n\t\t/**\n\t\tRun with the `npm restart` command. Note: `npm restart` will run the `stop` and `start` scripts if no `restart` script is provided.\n\t\t*/\n\t\trestart?: string;\n\n\t\t/**\n\t\tRun with the `npm restart` command, after `restart`. Note: `npm restart` will run the `stop` and `start` scripts if no `restart` script is provided.\n\t\t*/\n\t\tpostrestart?: string;\n\t} & Partial<Record<string, string>>;\n\n\t/**\n\tDependencies of the package. The version range is a string which has one or more space-separated descriptors. Dependencies can also be identified with a tarball or Git URL.\n\t*/\n\texport type Dependency = Partial<Record<string, string>>;\n\n\t/**\n\tConditions which provide a way to resolve a package entry point based on the environment.\n\t*/\n\texport type ExportCondition = LiteralUnion<\n\t\t| 'import'\n\t\t| 'require'\n\t\t| 'node'\n\t\t| 'node-addons'\n\t\t| 'deno'\n\t\t| 'browser'\n\t\t| 'electron'\n\t\t| 'react-native'\n\t\t| 'default',\n\t\tstring\n\t>;\n\n\ttype ExportConditions = {[condition in ExportCondition]: Exports};\n\n\t/**\n\tEntry points of a module, optionally with conditions and subpath exports.\n\t*/\n\texport type Exports =\n\t| null\n\t| string\n\t| Array<string | ExportConditions>\n\t| ExportConditions\n\t| {[path: string]: Exports}; // eslint-disable-line @typescript-eslint/consistent-indexed-object-style\n\n\t/**\n\tImport map entries of a module, optionally with conditions.\n\t*/\n\texport type Imports = { // eslint-disable-line @typescript-eslint/consistent-indexed-object-style\n\t\t[key: string]: string | {[key in ExportCondition]: Exports};\n\t};\n\n\texport interface NonStandardEntryPoints {\n\t\t/**\n\t\tAn ECMAScript module ID that is the primary entry point to the program.\n\t\t*/\n\t\tmodule?: string;\n\n\t\t/**\n\t\tA module ID with untranspiled code that is the primary entry point to the program.\n\t\t*/\n\t\tesnext?:\n\t\t| string\n\t\t| {\n\t\t\t[moduleName: string]: string | undefined;\n\t\t\tmain?: string;\n\t\t\tbrowser?: string;\n\t\t};\n\n\t\t/**\n\t\tA hint to JavaScript bundlers or component tools when packaging modules for client side use.\n\t\t*/\n\t\tbrowser?:\n\t\t| string\n\t\t| Partial<Record<string, string | false>>;\n\n\t\t/**\n\t\tDenote which files in your project are \"pure\" and therefore safe for Webpack to prune if unused.\n\n\t\t[Read more.](https://webpack.js.org/guides/tree-shaking/)\n\t\t*/\n\t\tsideEffects?: boolean | string[];\n\t}\n\n\texport interface TypeScriptConfiguration {\n\t\t/**\n\t\tLocation of the bundled TypeScript declaration file.\n\t\t*/\n\t\ttypes?: string;\n\n\t\t/**\n\t\tVersion selection map of TypeScript.\n\t\t*/\n\t\ttypesVersions?: Partial<Record<string, Partial<Record<string, string[]>>>>;\n\n\t\t/**\n\t\tLocation of the bundled TypeScript declaration file. Alias of `types`.\n\t\t*/\n\t\ttypings?: string;\n\t}\n\n\t/**\n\tAn alternative configuration for Yarn workspaces.\n\t*/\n\texport interface WorkspaceConfig {\n\t\t/**\n\t\tAn array of workspace pattern strings which contain the workspace packages.\n\t\t*/\n\t\tpackages?: WorkspacePattern[];\n\n\t\t/**\n\t\tDesigned to solve the problem of packages which break when their `node_modules` are moved to the root workspace directory - a process known as hoisting. For these packages, both within your workspace, and also some that have been installed via `node_modules`, it is important to have a mechanism for preventing the default Yarn workspace behavior. By adding workspace pattern strings here, Yarn will resume non-workspace behavior for any package which matches the defined patterns.\n\n\t\t[Read more](https://classic.yarnpkg.com/blog/2018/02/15/nohoist/)\n\t\t*/\n\t\tnohoist?: WorkspacePattern[];\n\t}\n\n\t/**\n\tA workspace pattern points to a directory or group of directories which contain packages that should be included in the workspace installation process.\n\n\tThe patterns are handled with [minimatch](https://github.com/isaacs/minimatch).\n\n\t@example\n\t`docs` → Include the docs directory and install its dependencies.\n\t`packages/*` → Include all nested directories within the packages directory, like `packages/cli` and `packages/core`.\n\t*/\n\ttype WorkspacePattern = string;\n\n\texport interface YarnConfiguration {\n\t\t/**\n\t\tUsed to configure [Yarn workspaces](https://classic.yarnpkg.com/docs/workspaces/).\n\n\t\tWorkspaces allow you to manage multiple packages within the same repository in such a way that you only need to run `yarn install` once to install all of them in a single pass.\n\n\t\tPlease note that the top-level `private` property of `package.json` **must** be set to `true` in order to use workspaces.\n\t\t*/\n\t\tworkspaces?: WorkspacePattern[] | WorkspaceConfig;\n\n\t\t/**\n\t\tIf your package only allows one version of a given dependency, and you’d like to enforce the same behavior as `yarn install --flat` on the command-line, set this to `true`.\n\n\t\tNote that if your `package.json` contains `\"flat\": true` and other packages depend on yours (e.g. you are building a library rather than an app), those other packages will also need `\"flat\": true` in their `package.json` or be installed with `yarn install --flat` on the command-line.\n\t\t*/\n\t\tflat?: boolean;\n\n\t\t/**\n\t\tSelective version resolutions. Allows the definition of custom package versions inside dependencies without manual edits in the `yarn.lock` file.\n\t\t*/\n\t\tresolutions?: Dependency;\n\t}\n\n\texport interface JSPMConfiguration {\n\t\t/**\n\t\tJSPM configuration.\n\t\t*/\n\t\tjspm?: PackageJson$1;\n\t}\n\n\t/**\n\tType for [npm's `package.json` file](https://docs.npmjs.com/creating-a-package-json-file). Containing standard npm properties.\n\t*/\n\texport interface PackageJsonStandard {\n\t\t/**\n\t\tThe name of the package.\n\t\t*/\n\t\tname?: string;\n\n\t\t/**\n\t\tPackage version, parseable by [`node-semver`](https://github.com/npm/node-semver).\n\t\t*/\n\t\tversion?: string;\n\n\t\t/**\n\t\tPackage description, listed in `npm search`.\n\t\t*/\n\t\tdescription?: string;\n\n\t\t/**\n\t\tKeywords associated with package, listed in `npm search`.\n\t\t*/\n\t\tkeywords?: string[];\n\n\t\t/**\n\t\tThe URL to the package's homepage.\n\t\t*/\n\t\thomepage?: LiteralUnion<'.', string>;\n\n\t\t/**\n\t\tThe URL to the package's issue tracker and/or the email address to which issues should be reported.\n\t\t*/\n\t\tbugs?: BugsLocation;\n\n\t\t/**\n\t\tThe license for the package.\n\t\t*/\n\t\tlicense?: string;\n\n\t\t/**\n\t\tThe licenses for the package.\n\t\t*/\n\t\tlicenses?: Array<{\n\t\t\ttype?: string;\n\t\t\turl?: string;\n\t\t}>;\n\n\t\tauthor?: Person;\n\n\t\t/**\n\t\tA list of people who contributed to the package.\n\t\t*/\n\t\tcontributors?: Person[];\n\n\t\t/**\n\t\tA list of people who maintain the package.\n\t\t*/\n\t\tmaintainers?: Person[];\n\n\t\t/**\n\t\tThe files included in the package.\n\t\t*/\n\t\tfiles?: string[];\n\n\t\t/**\n\t\tResolution algorithm for importing \".js\" files from the package's scope.\n\n\t\t[Read more.](https://nodejs.org/api/esm.html#esm_package_json_type_field)\n\t\t*/\n\t\ttype?: 'module' | 'commonjs';\n\n\t\t/**\n\t\tThe module ID that is the primary entry point to the program.\n\t\t*/\n\t\tmain?: string;\n\n\t\t/**\n\t\tSubpath exports to define entry points of the package.\n\n\t\t[Read more.](https://nodejs.org/api/packages.html#subpath-exports)\n\t\t*/\n\t\texports?: Exports;\n\n\t\t/**\n\t\tSubpath imports to define internal package import maps that only apply to import specifiers from within the package itself.\n\n\t\t[Read more.](https://nodejs.org/api/packages.html#subpath-imports)\n\t\t*/\n\t\timports?: Imports;\n\n\t\t/**\n\t\tThe executable files that should be installed into the `PATH`.\n\t\t*/\n\t\tbin?:\n\t\t| string\n\t\t| Partial<Record<string, string>>;\n\n\t\t/**\n\t\tFilenames to put in place for the `man` program to find.\n\t\t*/\n\t\tman?: string | string[];\n\n\t\t/**\n\t\tIndicates the structure of the package.\n\t\t*/\n\t\tdirectories?: DirectoryLocations;\n\n\t\t/**\n\t\tLocation for the code repository.\n\t\t*/\n\t\trepository?:\n\t\t| string\n\t\t| {\n\t\t\ttype: string;\n\t\t\turl: string;\n\n\t\t\t/**\n\t\t\tRelative path to package.json if it is placed in non-root directory (for example if it is part of a monorepo).\n\n\t\t\t[Read more.](https://github.com/npm/rfcs/blob/latest/implemented/0010-monorepo-subdirectory-declaration.md)\n\t\t\t*/\n\t\t\tdirectory?: string;\n\t\t};\n\n\t\t/**\n\t\tScript commands that are run at various times in the lifecycle of the package. The key is the lifecycle event, and the value is the command to run at that point.\n\t\t*/\n\t\tscripts?: Scripts;\n\n\t\t/**\n\t\tIs used to set configuration parameters used in package scripts that persist across upgrades.\n\t\t*/\n\t\tconfig?: Record<string, unknown>;\n\n\t\t/**\n\t\tThe dependencies of the package.\n\t\t*/\n\t\tdependencies?: Dependency;\n\n\t\t/**\n\t\tAdditional tooling dependencies that are not required for the package to work. Usually test, build, or documentation tooling.\n\t\t*/\n\t\tdevDependencies?: Dependency;\n\n\t\t/**\n\t\tDependencies that are skipped if they fail to install.\n\t\t*/\n\t\toptionalDependencies?: Dependency;\n\n\t\t/**\n\t\tDependencies that will usually be required by the package user directly or via another dependency.\n\t\t*/\n\t\tpeerDependencies?: Dependency;\n\n\t\t/**\n\t\tIndicate peer dependencies that are optional.\n\t\t*/\n\t\tpeerDependenciesMeta?: Partial<Record<string, {optional: true}>>;\n\n\t\t/**\n\t\tPackage names that are bundled when the package is published.\n\t\t*/\n\t\tbundledDependencies?: string[];\n\n\t\t/**\n\t\tAlias of `bundledDependencies`.\n\t\t*/\n\t\tbundleDependencies?: string[];\n\n\t\t/**\n\t\tEngines that this package runs on.\n\t\t*/\n\t\tengines?: {\n\t\t\t[EngineName in 'npm' | 'node' | string]?: string;\n\t\t};\n\n\t\t/**\n\t\t@deprecated\n\t\t*/\n\t\tengineStrict?: boolean;\n\n\t\t/**\n\t\tOperating systems the module runs on.\n\t\t*/\n\t\tos?: Array<LiteralUnion<\n\t\t| 'aix'\n\t\t| 'darwin'\n\t\t| 'freebsd'\n\t\t| 'linux'\n\t\t| 'openbsd'\n\t\t| 'sunos'\n\t\t| 'win32'\n\t\t| '!aix'\n\t\t| '!darwin'\n\t\t| '!freebsd'\n\t\t| '!linux'\n\t\t| '!openbsd'\n\t\t| '!sunos'\n\t\t| '!win32',\n\t\tstring\n\t\t>>;\n\n\t\t/**\n\t\tCPU architectures the module runs on.\n\t\t*/\n\t\tcpu?: Array<LiteralUnion<\n\t\t| 'arm'\n\t\t| 'arm64'\n\t\t| 'ia32'\n\t\t| 'mips'\n\t\t| 'mipsel'\n\t\t| 'ppc'\n\t\t| 'ppc64'\n\t\t| 's390'\n\t\t| 's390x'\n\t\t| 'x32'\n\t\t| 'x64'\n\t\t| '!arm'\n\t\t| '!arm64'\n\t\t| '!ia32'\n\t\t| '!mips'\n\t\t| '!mipsel'\n\t\t| '!ppc'\n\t\t| '!ppc64'\n\t\t| '!s390'\n\t\t| '!s390x'\n\t\t| '!x32'\n\t\t| '!x64',\n\t\tstring\n\t\t>>;\n\n\t\t/**\n\t\tIf set to `true`, a warning will be shown if package is installed locally. Useful if the package is primarily a command-line application that should be installed globally.\n\n\t\t@deprecated\n\t\t*/\n\t\tpreferGlobal?: boolean;\n\n\t\t/**\n\t\tIf set to `true`, then npm will refuse to publish it.\n\t\t*/\n\t\tprivate?: boolean;\n\n\t\t/**\n\t\tA set of config values that will be used at publish-time. It's especially handy to set the tag, registry or access, to ensure that a given package is not tagged with 'latest', published to the global public registry or that a scoped module is private by default.\n\t\t*/\n\t\tpublishConfig?: PublishConfig;\n\n\t\t/**\n\t\tDescribes and notifies consumers of a package's monetary support information.\n\n\t\t[Read more.](https://github.com/npm/rfcs/blob/latest/accepted/0017-add-funding-support.md)\n\t\t*/\n\t\tfunding?: string | {\n\t\t\t/**\n\t\t\tThe type of funding.\n\t\t\t*/\n\t\t\ttype?: LiteralUnion<\n\t\t\t| 'github'\n\t\t\t| 'opencollective'\n\t\t\t| 'patreon'\n\t\t\t| 'individual'\n\t\t\t| 'foundation'\n\t\t\t| 'corporation',\n\t\t\tstring\n\t\t\t>;\n\n\t\t\t/**\n\t\t\tThe URL to the funding page.\n\t\t\t*/\n\t\t\turl: string;\n\t\t};\n\t}\n\n\texport interface PublishConfig {\n\t\t/**\n\t\tAdditional, less common properties from the [npm docs on `publishConfig`](https://docs.npmjs.com/cli/v7/configuring-npm/package-json#publishconfig).\n\t\t*/\n\t\t[additionalProperties: string]: unknown;\n\n\t\t/**\n\t\tWhen publishing scoped packages, the access level defaults to restricted. If you want your scoped package to be publicly viewable (and installable) set `--access=public`. The only valid values for access are public and restricted. Unscoped packages always have an access level of public.\n\t\t*/\n\t\taccess?: 'public' | 'restricted';\n\n\t\t/**\n\t\tThe base URL of the npm registry.\n\n\t\tDefault: `'https://registry.npmjs.org/'`\n\t\t*/\n\t\tregistry?: string;\n\n\t\t/**\n\t\tThe tag to publish the package under.\n\n\t\tDefault: `'latest'`\n\t\t*/\n\t\ttag?: string;\n\t}\n}\n\n/**\nType for [npm's `package.json` file](https://docs.npmjs.com/creating-a-package-json-file). Also includes types for fields used by other popular projects, like TypeScript and Yarn.\n\n@category File\n*/\ntype PackageJson$1 =\nPackageJson$1.PackageJsonStandard &\nPackageJson$1.NonStandardEntryPoints &\nPackageJson$1.TypeScriptConfiguration &\nPackageJson$1.YarnConfiguration &\nPackageJson$1.JSPMConfiguration;\n\ninterface FileSystemCacheOptions {\n ns?: string;\n prefix?: string;\n hash_alg?: string;\n basePath?: string;\n ttl?: number;\n}\ninterface CacheItem {\n key: string;\n content?: any;\n value?: any;\n}\ninterface CacheSetOptions {\n ttl?: number;\n encoding?: BufferEncoding;\n}\ndeclare class FileSystemCache {\n private prefix;\n private hash_alg;\n private cache_dir;\n private ttl;\n constructor(options?: FileSystemCacheOptions);\n private generateHash;\n private isExpired;\n private parseCacheData;\n private parseSetData;\n get<T = any>(name: string, fallback?: T): Promise<T>;\n getSync<T>(name: string, fallback?: T): T;\n set<T>(name: string, data: T, orgOpts?: CacheSetOptions | number): Promise<void>;\n setSync<T>(name: string, data: T, orgOpts?: CacheSetOptions | number): void;\n setMany(items: CacheItem[], options?: CacheSetOptions): Promise<void>;\n setManySync(items: CacheItem[], options?: CacheSetOptions): void;\n remove(name: string): Promise<void>;\n removeSync(name: string): void;\n clear(): Promise<void>;\n clearSync(): void;\n getAll(): Promise<CacheItem[]>;\n load(): Promise<{\n files: CacheItem[];\n }>;\n}\n\ntype ExportName = string;\ntype MetaId = string;\ninterface StoriesSpecifier {\n /** When auto-titling, what to prefix all generated titles with (default: '') */\n titlePrefix?: string;\n /** Where to start looking for story files */\n directory: string;\n /**\n * What does the filename of a story file look like? (a glob, relative to directory, no leading\n * `./`) If unset, we use `** / *.@(mdx|stories.@(mdx|js|jsx|mjs|ts|tsx))` (no spaces)\n */\n files?: string;\n}\ntype StoriesEntry = string | StoriesSpecifier;\ntype NormalizedStoriesSpecifier = Required<StoriesSpecifier> & {\n importPathMatcher: RegExp;\n};\ninterface IndexerOptions {\n makeTitle: (userTitle?: string) => string;\n}\ninterface IndexedStory {\n id: string;\n name: string;\n tags?: Tag$1[];\n parameters?: Parameters;\n}\ninterface IndexedCSFFile {\n meta: {\n id?: string;\n title?: string;\n tags?: Tag$1[];\n };\n stories: IndexedStory[];\n}\n/**\n * FIXME: This is a temporary type to allow us to deprecate the old indexer API. We should remove\n * this type and the deprecated indexer API in 8.0.\n */\ntype BaseIndexer = {\n /** A regular expression that should match all files to be handled by this indexer */\n test: RegExp;\n};\n/**\n * An indexer describes which filenames it handles, and how to index each individual file - turning\n * it into an entry in the index.\n */\ntype Indexer = BaseIndexer & {\n /**\n * Indexes a file containing stories or docs.\n *\n * @param fileName The name of the file to index.\n * @param options {@link IndexerOptions} for indexing the file.\n * @returns A promise that resolves to an array of {@link IndexInput} objects.\n */\n createIndex: (fileName: string, options: IndexerOptions) => Promise<IndexInput[]>;\n};\ninterface BaseIndexEntry {\n id: StoryId;\n name: StoryName;\n title: ComponentTitle;\n tags?: Tag$1[];\n importPath: Path;\n}\ntype StoryIndexEntry = BaseIndexEntry & {\n type: 'story';\n};\ntype DocsIndexEntry = BaseIndexEntry & {\n storiesImports: Path[];\n type: 'docs';\n};\ntype IndexEntry = StoryIndexEntry | DocsIndexEntry;\ninterface IndexInputStats {\n loaders?: boolean;\n play?: boolean;\n render?: boolean;\n storyFn?: boolean;\n mount?: boolean;\n beforeEach?: boolean;\n moduleMock?: boolean;\n globals?: boolean;\n factory?: boolean;\n tags?: boolean;\n}\n/** The base input for indexing a story or docs entry. */\ntype BaseIndexInput = {\n /** The file to import from e.g. the story file. */\n importPath: Path;\n /** The raw path/package of the file that provides meta.component, if one exists */\n rawComponentPath?: Path;\n /** The name of the export to import. */\n exportName: ExportName;\n /** The name of the entry, auto-generated from {@link exportName} if unspecified. */\n name?: StoryName;\n /** The location in the sidebar, auto-generated from {@link importPath} if unspecified. */\n title?: ComponentTitle;\n /**\n * The custom id optionally set at `meta.id` if it needs to differ from the id generated via\n * {@link title}. If unspecified, the meta id will be auto-generated from {@link title}. If\n * specified, the meta in the CSF file _must_ have a matching id set at `meta.id`, to be correctly\n * matched.\n */\n metaId?: MetaId;\n /** Tags for filtering entries in Storybook and its tools. */\n tags?: Tag$1[];\n /**\n * The id of the entry, auto-generated from {@link title}/{@link metaId} and {@link exportName} if\n * unspecified. If specified, the story in the CSF file _must_ have a matching id set at\n * `parameters.__id`, to be correctly matched. Only use this if you need to override the\n * auto-generated id.\n */\n __id?: StoryId;\n /** Stats about language feature usage that the indexer can optionally report */\n __stats?: IndexInputStats;\n};\n/** The input for indexing a story entry. */\ntype StoryIndexInput = BaseIndexInput & {\n type: 'story';\n};\n/** The input for indexing a docs entry. */\ntype DocsIndexInput = BaseIndexInput & {\n type: 'docs';\n /** Paths to story files that must be pre-loaded for this docs entry. */\n storiesImports?: Path[];\n};\ntype IndexInput = StoryIndexInput | DocsIndexInput;\ninterface V3CompatIndexEntry extends Omit<StoryIndexEntry, 'type' | 'tags'> {\n kind: ComponentTitle;\n story: StoryName;\n parameters: Parameters;\n}\ninterface StoryIndexV2 {\n v: number;\n stories: Record<StoryId, Omit<V3CompatIndexEntry, 'title' | 'name' | 'importPath'> & {\n name?: StoryName;\n }>;\n}\ninterface StoryIndexV3 {\n v: number;\n stories: Record<StoryId, V3CompatIndexEntry>;\n}\ninterface StoryIndex {\n v: number;\n entries: Record<StoryId, IndexEntry>;\n}\n\n/** ⚠️ This file contains internal WIP types they MUST NOT be exported outside this package for now! */\ntype BuilderName = 'webpack5' | '@storybook/builder-webpack5' | string;\ntype RendererName = string;\ninterface ServerChannel {\n emit(type: string, args?: any): void;\n}\ninterface CoreConfig {\n builder?: BuilderName | {\n name: BuilderName;\n options?: Record<string, any>;\n };\n renderer?: RendererName;\n disableWebpackDefaults?: boolean;\n channelOptions?: Partial<Options$1>;\n /** Disables the generation of project.json, a file containing Storybook metadata */\n disableProjectJson?: boolean;\n /**\n * Disables Storybook telemetry\n *\n * @see https://storybook.js.org/telemetry\n */\n disableTelemetry?: boolean;\n /** Disables notifications for Storybook updates. */\n disableWhatsNewNotifications?: boolean;\n /**\n * Enable crash reports to be sent to Storybook telemetry\n *\n * @see https://storybook.js.org/telemetry\n */\n enableCrashReports?: boolean;\n /**\n * Enable CORS headings to run document in a \"secure context\" see:\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer#security_requirements\n * This enables these headers in development-mode: Cross-Origin-Opener-Policy: same-origin\n *\n * ```text\n * Cross-Origin-Embedder-Policy: require-corp\n * ```\n */\n crossOriginIsolated?: boolean;\n}\ninterface DirectoryMapping {\n from: string;\n to: string;\n}\ninterface Presets {\n apply(extension: 'typescript', config: TypescriptOptions, args?: Options): Promise<TypescriptOptions>;\n apply(extension: 'framework', config?: {}, args?: any): Promise<Preset>;\n apply(extension: 'babel', config?: {}, args?: any): Promise<any>;\n apply(extension: 'swc', config?: {}, args?: any): Promise<any>;\n apply(extension: 'entries', config?: [], args?: any): Promise<unknown>;\n apply(extension: 'env', config?: {}, args?: any): Promise<any>;\n apply(extension: 'stories', config?: [], args?: any): Promise<StoriesEntry[]>;\n apply(extension: 'managerEntries', config: [], args?: any): Promise<string[]>;\n apply(extension: 'refs', config?: [], args?: any): Promise<StorybookConfigRaw['refs']>;\n apply(extension: 'core', config?: StorybookConfigRaw['core'], args?: any): Promise<NonNullable<StorybookConfigRaw['core']>>;\n apply(extension: 'docs', config?: StorybookConfigRaw['docs'], args?: any): Promise<NonNullable<StorybookConfigRaw['docs']>>;\n apply(extension: 'features', config?: StorybookConfigRaw['features'], args?: any): Promise<NonNullable<StorybookConfigRaw['features']>>;\n apply(extension: 'typescript', config?: StorybookConfigRaw['typescript'], args?: any): Promise<NonNullable<StorybookConfigRaw['typescript']>>;\n apply(extension: 'build', config?: StorybookConfigRaw['build'], args?: any): Promise<NonNullable<StorybookConfigRaw['build']>>;\n apply(extension: 'staticDirs', config?: StorybookConfigRaw['staticDirs'], args?: any): Promise<StorybookConfigRaw['staticDirs']>;\n apply<T>(extension: string, config?: T, args?: unknown): Promise<T>;\n}\ninterface LoadedPreset {\n name: string;\n preset: any;\n options: any;\n}\ntype PresetConfig = string | {\n name: string;\n options?: unknown;\n};\ninterface Ref {\n id: string;\n url: string;\n title: string;\n version: string;\n type?: string;\n disable?: boolean;\n}\ninterface VersionCheck {\n success: boolean;\n cached: boolean;\n data?: any;\n error?: any;\n time: number;\n}\ninterface Stats {\n toJson: () => any;\n}\ninterface BuilderResult {\n totalTime?: ReturnType<typeof process.hrtime>;\n stats?: Stats;\n}\ntype PackageJson = PackageJson$1 & Record<string, any>;\ninterface LoadOptions {\n packageJson?: PackageJson;\n outputDir?: string;\n configDir?: string;\n cacheKey?: string;\n ignorePreview?: boolean;\n extendServer?: (server: Server) => void;\n}\ninterface CLIOptions {\n port?: number;\n ignorePreview?: boolean;\n previewUrl?: string;\n forceBuildPreview?: boolean;\n disableTelemetry?: boolean;\n enableCrashReports?: boolean;\n host?: string;\n initialPath?: string;\n exactPort?: boolean;\n configDir?: string;\n https?: boolean;\n sslCa?: string[];\n sslCert?: string;\n sslKey?: string;\n smokeTest?: boolean;\n managerCache?: boolean;\n open?: boolean;\n ci?: boolean;\n loglevel?: string;\n quiet?: boolean;\n versionUpdates?: boolean;\n docs?: boolean;\n test?: boolean;\n debugWebpack?: boolean;\n webpackStatsJson?: string | boolean;\n statsJson?: string | boolean;\n outputDir?: string;\n}\ninterface BuilderOptions {\n configType?: 'DEVELOPMENT' | 'PRODUCTION';\n ignorePreview?: boolean;\n cache?: FileSystemCache;\n configDir: string;\n docsMode?: boolean;\n features?: StorybookConfigRaw['features'];\n versionCheck?: VersionCheck;\n disableWebpackDefaults?: boolean;\n serverChannelUrl?: string;\n}\ninterface StorybookConfigOptions {\n presets: Presets;\n presetsList?: LoadedPreset[];\n}\ntype Options = LoadOptions & StorybookConfigOptions & CLIOptions & BuilderOptions & {\n build?: TestBuildConfig;\n};\ntype Middleware<T extends IncomingMessage = IncomingMessage> = (req: T & IncomingMessage, res: ServerResponse, next: (err?: string | Error) => Promise<void> | void) => Promise<void> | void;\ninterface ServerApp<T extends IncomingMessage = IncomingMessage> {\n server: Server$1;\n use(pattern: RegExp | string, ...handlers: Middleware<T>[]): this;\n use(...handlers: Middleware<T>[]): this;\n get(pattern: RegExp | string, ...handlers: Middleware<T>[]): this;\n post(pattern: RegExp | string, ...handlers: Middleware<T>[]): this;\n put(pattern: RegExp | string, ...handlers: Middleware<T>[]): this;\n patch(pattern: RegExp | string, ...handlers: Middleware<T>[]): this;\n delete(pattern: RegExp | string, ...handlers: Middleware<T>[]): this;\n head(pattern: RegExp | string, ...handlers: Middleware<T>[]): this;\n options(pattern: RegExp | string, ...handlers: Middleware<T>[]): this;\n connect(pattern: RegExp | string, ...handlers: Middleware<T>[]): this;\n trace(pattern: RegExp | string, ...handlers: Middleware<T>[]): this;\n}\ninterface Builder<Config, BuilderStats extends Stats = Stats> {\n getConfig: (options: Options) => Promise<Config>;\n start: (args: {\n options: Options;\n startTime: ReturnType<typeof process.hrtime>;\n router: ServerApp;\n server: Server;\n channel: ServerChannel;\n }) => Promise<void | {\n stats?: BuilderStats;\n totalTime: ReturnType<typeof process.hrtime>;\n bail: (e?: Error) => Promise<void>;\n }>;\n build: (arg: {\n options: Options;\n startTime: ReturnType<typeof process.hrtime>;\n }) => Promise<void | BuilderStats>;\n bail: (e?: Error) => Promise<void>;\n corePresets?: string[];\n overridePresets?: string[];\n}\n/** Options for TypeScript usage within Storybook. */\ninterface TypescriptOptions {\n /**\n * Enables type checking within Storybook.\n *\n * @default `false`\n */\n check: boolean;\n /**\n * Disable parsing TypeScript files through compiler.\n *\n * @default `false`\n */\n skipCompiler: boolean;\n}\ntype Preset = string | {\n name: string;\n options?: any;\n};\n/** An additional script that gets injected into the preview or the manager, */\ntype Entry = string;\ntype CoreCommon_StorybookRefs = Record<string, {\n title: string;\n url: string;\n} | {\n disable: boolean;\n expanded?: boolean;\n}>;\ntype DocsOptions = {\n /** What should we call the generated docs entries? */\n defaultName?: string;\n /**\n * Should we generate a docs entry per CSF file? Set to 'tag' (the default) to generate an entry\n * for every CSF file with the 'autodocs' tag.\n *\n * @deprecated Use `tags: ['autodocs']` in `.storybook/preview.js` instead\n */\n autodocs?: boolean | 'tag';\n /** Only show doc entries in the side bar (usually set with the `--docs` CLI flag) */\n docsMode?: boolean;\n};\ninterface TestBuildFlags {\n /**\n * The package @storybook/blocks will be excluded from the bundle, even when imported in e.g. the\n * preview.\n */\n disableBlocks?: boolean;\n /** Disable specific addons */\n disabledAddons?: string[];\n /** Filter out .mdx stories entries */\n disableMDXEntries?: boolean;\n /** Override autodocs to be disabled */\n disableAutoDocs?: boolean;\n /** Override docgen to be disabled. */\n disableDocgen?: boolean;\n /** Override sourcemaps generation to be disabled. */\n disableSourcemaps?: boolean;\n /** Override tree-shaking (dead code elimination) to be disabled. */\n disableTreeShaking?: boolean;\n /** Minify with ESBuild when using webpack. */\n esbuildMinify?: boolean;\n}\ninterface TestBuildConfig {\n test?: TestBuildFlags;\n}\ntype Tag = string;\ninterface TagOptions {\n excludeFromSidebar: boolean;\n excludeFromDocsStories: boolean;\n}\ntype TagsOptions = Record<Tag, Partial<TagOptions>>;\n/**\n * The interface for Storybook configuration used internally in presets The difference is that these\n * values are the raw values, AKA, not wrapped with `PresetValue<>`\n */\ninterface StorybookConfigRaw {\n /**\n * Sets the addons you want to use with Storybook.\n *\n * @example\n *\n * ```ts\n * addons = ['@storybook/addon-essentials'];\n * addons = [{ name: '@storybook/addon-essentials', options: { backgrounds: false } }];\n * ```\n */\n addons?: Preset[];\n core?: CoreConfig;\n staticDirs?: (DirectoryMapping | string)[];\n logLevel?: string;\n features?: {\n /** Filter args with a \"target\" on the type from the render function (EXPERIMENTAL) */\n argTypeTargetsV7?: boolean;\n /** Apply decorators from preview.js before decorators from addons or frameworks */\n legacyDecoratorFileOrder?: boolean;\n /**\n * Disallow implicit actions during rendering. This will be the default in Storybook 8.\n *\n * This will make sure that your story renders the same no matter if docgen is enabled or not.\n */\n disallowImplicitActionsInRenderV8?: boolean;\n /** Enable asynchronous component rendering in React renderer */\n experimentalRSC?: boolean;\n /** Use globals & globalTypes for configuring the viewport addon */\n viewportStoryGlobals?: boolean;\n /** Use globals & globalTypes for configuring the backgrounds addon */\n backgroundsStoryGlobals?: boolean;\n /** Set NODE_ENV to development in built Storybooks for better testability and debuggability */\n developmentModeForBuild?: boolean;\n };\n build?: TestBuildConfig;\n stories: StoriesEntry[];\n framework?: Preset;\n typescript?: Partial<TypescriptOptions>;\n refs?: CoreCommon_StorybookRefs;\n babel?: any;\n swc?: any;\n env?: Record<string, string>;\n babelDefault?: any;\n previewAnnotations?: Entry[];\n experimental_indexers?: Indexer[];\n docs?: DocsOptions;\n previewHead?: string;\n previewBody?: string;\n previewMainTemplate?: string;\n managerHead?: string;\n tags?: TagsOptions;\n}\n/**\n * The interface for Storybook configuration in `main.ts` files. This interface is public All values\n * should be wrapped with `PresetValue<>`, though there are a few exceptions: `addons`, `framework`\n */\ninterface StorybookConfig {\n /**\n * Sets the addons you want to use with Storybook.\n *\n * @example\n *\n * ```\n * addons = ['@storybook/addon-essentials'];\n * addons = [{ name: '@storybook/addon-essentials', options: { backgrounds: false } }];\n * ```\n */\n addons?: StorybookConfigRaw['addons'];\n core?: PresetValue<StorybookConfigRaw['core']>;\n /**\n * Sets a list of directories of static files to be loaded by Storybook server\n *\n * @example\n *\n * ```ts\n * staticDirs = ['./public'];\n * staticDirs = [{ from: './public', to: '/assets' }];\n * ```\n */\n staticDirs?: PresetValue<StorybookConfigRaw['staticDirs']>;\n logLevel?: PresetValue<StorybookConfigRaw['logLevel']>;\n features?: PresetValue<StorybookConfigRaw['features']>;\n build?: PresetValue<StorybookConfigRaw['build']>;\n /**\n * Tells Storybook where to find stories.\n *\n * @example\n *\n * ```ts\n * stories = ['./src/*.stories.@(j|t)sx?'];\n * stories = async () => [...(await myCustomStoriesEntryBuilderFunc())];\n * ```\n */\n stories: PresetValue<StorybookConfigRaw['stories']>;\n /** Framework, e.g. '@storybook/react-vite', required in v7 */\n framework?: StorybookConfigRaw['framework'];\n /** Controls how Storybook handles TypeScript files. */\n typescript?: PresetValue<StorybookConfigRaw['typescript']>;\n /** References external Storybooks */\n refs?: PresetValue<StorybookConfigRaw['refs']>;\n /** Modify or return babel config. */\n babel?: PresetValue<StorybookConfigRaw['babel']>;\n /** Modify or return swc config. */\n swc?: PresetValue<StorybookConfigRaw['swc']>;\n /** Modify or return env config. */\n env?: PresetValue<StorybookConfigRaw['env']>;\n /** Modify or return babel config. */\n babelDefault?: PresetValue<StorybookConfigRaw['babelDefault']>;\n /** Add additional scripts to run in the preview a la `.storybook/preview.js` */\n previewAnnotations?: PresetValue<StorybookConfigRaw['previewAnnotations']>;\n /** Process CSF files for the story index. */\n experimental_indexers?: PresetValue<StorybookConfigRaw['experimental_indexers']>;\n /** Docs related features in index generation */\n docs?: PresetValue<StorybookConfigRaw['docs']>;\n /**\n * Programmatically modify the preview head/body HTML. The previewHead and previewBody functions\n * accept a string, which is the existing head/body, and return a modified string.\n */\n previewHead?: PresetValue<StorybookConfigRaw['previewHead']>;\n previewBody?: PresetValue<StorybookConfigRaw['previewBody']>;\n /**\n * Programmatically override the preview's main page template. This should return a reference to a\n * file containing an `.ejs` template that will be interpolated with environment variables.\n *\n * @example\n *\n * ```ts\n * previewMainTemplate = '.storybook/index.ejs';\n * ```\n */\n previewMainTemplate?: PresetValue<StorybookConfigRaw['previewMainTemplate']>;\n /**\n * Programmatically modify the preview head/body HTML. The managerHead function accept a string,\n * which is the existing head content, and return a modified string.\n */\n managerHead?: PresetValue<StorybookConfigRaw['managerHead']>;\n /** Configure non-standard tag behaviors */\n tags?: PresetValue<StorybookConfigRaw['tags']>;\n}\ntype PresetValue<T> = T | ((config: T, options: Options) => T | Promise<T>);\ntype PresetProperty<K, TStorybookConfig = StorybookConfigRaw> = TStorybookConfig[K extends keyof TStorybookConfig ? K : never] | PresetPropertyFn<K, TStorybookConfig>;\ntype PresetPropertyFn<K, TStorybookConfig = StorybookConfigRaw, TOptions = {}> = (config: TStorybookConfig[K extends keyof TStorybookConfig ? K : never], options: Options & TOptions) => TStorybookConfig[K extends keyof TStorybookConfig ? K : never] | Promise<TStorybookConfig[K extends keyof TStorybookConfig ? K : never]>;\ninterface CoreCommon_ResolvedAddonPreset {\n type: 'presets';\n name: string;\n}\ntype PreviewAnnotation = string | {\n bare: string;\n absolute: string;\n};\ninterface CoreCommon_ResolvedAddonVirtual {\n type: 'virtual';\n name: string;\n managerEntries?: string[];\n previewAnnotations?: PreviewAnnotation[];\n presets?: (string | {\n name: string;\n options?: any;\n })[];\n}\ntype CoreCommon_OptionsEntry = {\n name: string;\n};\ntype CoreCommon_AddonEntry = string | CoreCommon_OptionsEntry;\ntype CoreCommon_AddonInfo = {\n name: string;\n inEssentials: boolean;\n};\ninterface CoreCommon_StorybookInfo {\n version: string;\n framework: string;\n frameworkPackage: string;\n renderer: string;\n rendererPackage: string;\n configDir?: string;\n mainConfig?: string;\n previewConfig?: string;\n managerConfig?: string;\n}\n/**\n * Given a generic string type, returns that type but ensures that a string in general is compatible\n * with it. We use this construct to ensure that IDEs can provide better autocompletion for string\n * types. This is, for example, needed for main config fields, where we want to ensure that the user\n * can provide a custom string, but also a string that is compatible with the type.\n *\n * @example\n *\n * ```ts\n * type Framework = CompatibleString<'@storybook/nextjs'>;\n * const framework: Framework = '@storybook/nextjs'; // valid and will be autocompleted const framework: Framework =\n * path.dirname(require.resolve(path.join('@storybook/nextjs', 'package.json'))); // valid\n * ```\n */\ntype CompatibleString<T extends string> = T | (string & {});\n\ninterface API_BaseEntry {\n id: StoryId;\n depth: number;\n name: string;\n tags: Tag$1[];\n refId?: string;\n renderLabel?: (item: API_BaseEntry, api: any) => any;\n}\ninterface API_RootEntry extends API_BaseEntry {\n type: 'root';\n startCollapsed?: boolean;\n children: StoryId[];\n}\ninterface API_GroupEntry extends API_BaseEntry {\n type: 'group';\n parent?: StoryId;\n children: StoryId[];\n}\ninterface API_ComponentEntry extends API_BaseEntry {\n type: 'component';\n parent?: StoryId;\n children: StoryId[];\n}\ninterface API_DocsEntry extends API_BaseEntry {\n type: 'docs';\n parent: StoryId;\n title: ComponentTitle;\n importPath: Path;\n prepared: boolean;\n parameters?: {\n [parameterName: string]: any;\n };\n}\ninterface API_StoryEntry extends API_BaseEntry {\n type: 'story';\n parent: StoryId;\n title: ComponentTitle;\n importPath: Path;\n prepared: boolean;\n parameters?: {\n [parameterName: string]: any;\n };\n args?: Args;\n argTypes?: ArgTypes;\n initialArgs?: Args;\n}\ntype API_LeafEntry = API_DocsEntry | API_StoryEntry;\ntype API_HashEntry = API_RootEntry | API_GroupEntry | API_ComponentEntry | API_DocsEntry | API_StoryEntry;\n/**\n * The `IndexHash` is our manager-side representation of the `StoryIndex`. We create entries in the\n * hash not only for each story or docs entry, but also for each \"group\" of the component (split on\n * '/'), as that's how things are manipulated in the manager (i.e. in the sidebar)\n */\ninterface API_IndexHash {\n [id: string]: API_HashEntry;\n}\ntype API_PreparedIndexEntry = IndexEntry & {\n parameters?: Parameters;\n argTypes?: ArgTypes;\n args?: Args;\n initialArgs?: Args;\n};\ninterface API_PreparedStoryIndex {\n v: number;\n entries: Record<StoryId, API_PreparedIndexEntry>;\n}\ntype API_OptionsData = {\n docsOptions: DocsOptions;\n};\ninterface API_ReleaseNotes {\n success?: boolean;\n currentVersion?: string;\n showOnFirstLaunch?: boolean;\n}\ninterface API_Settings {\n lastTrackedStoryId: string;\n}\ninterface API_Version {\n version: string;\n info?: {\n plain: string;\n };\n [key: string]: any;\n}\ninterface API_UnknownEntries {\n [key: string]: {\n [key: string]: any;\n };\n}\ninterface API_Versions$1 {\n latest?: API_Version;\n next?: API_Version;\n current?: API_Version;\n}\ntype API_StatusValue = 'pending' | 'success' | 'error' | 'warn' | 'unknown';\ninterface API_StatusObject {\n status: API_StatusValue;\n title: string;\n description: string;\n data?: any;\n onClick?: () => void;\n sidebarContextMenu?: boolean;\n}\ntype API_StatusState = Record<StoryId, Record<string, API_StatusObject>>;\ntype API_StatusUpdate = Record<StoryId, API_StatusObject | null>;\ntype API_FilterFunction = (item: API_PreparedIndexEntry & {\n status: Record<string, API_StatusObject | null>;\n}) => boolean;\n\ninterface SetStoriesStory {\n id: StoryId;\n name: string;\n refId?: string;\n componentId?: ComponentId;\n kind: StoryKind;\n parameters: {\n fileName: string;\n options: {\n [optionName: string]: any;\n };\n docsOnly?: boolean;\n viewMode?: API_ViewMode;\n [parameterName: string]: any;\n };\n argTypes?: ArgTypes;\n args?: Args;\n initialArgs?: Args;\n}\ninterface SetStoriesStoryData {\n [id: string]: SetStoriesStory;\n}\ntype SetStoriesPayload = {\n v: 2;\n error?: Error;\n globals: Args;\n globalParameters: Parameters;\n stories: SetStoriesStoryData;\n kindParameters: {\n [kind: string]: Parameters;\n };\n} | ({\n v?: number;\n stories: SetStoriesStoryData;\n} & Record<string, never>);\ninterface SetGlobalsPayload {\n globals: Globals;\n globalTypes: GlobalTypes;\n}\ninterface GlobalsUpdatedPayload {\n initialGlobals: Globals;\n userGlobals: Globals;\n storyGlobals: Globals;\n globals: Globals;\n}\ninterface StoryPreparedPayload {\n id: StoryId;\n parameters: Parameters;\n argTypes: ArgTypes;\n initialArgs: Args;\n args: Args;\n}\ninterface DocsPreparedPayload {\n id: StoryId;\n parameters: Parameters;\n}\n\ntype OrString$1<T extends string> = T | (string & {});\ntype API_ViewMode = OrString$1<'story' | 'docs' | 'settings'> | undefined;\ntype API_RenderOptions = Addon_RenderOptions;\ninterface API_RouteOptions {\n storyId: string;\n viewMode: API_ViewMode;\n location: RenderData['location'];\n path: string;\n}\ninterface API_MatchOptions {\n storyId: string;\n viewMode: API_ViewMode;\n location: RenderData['location'];\n path: string;\n}\ntype API_StateMerger<S> = (input: S) => S;\ninterface API_ProviderData<API> {\n provider: API_Provider<API>;\n docsOptions: DocsOptions;\n}\ninterface API_Provider<API> {\n channel?: Channel;\n /** @deprecated Will be removed in 8.0, please use channel instead */\n serverChannel?: Channel;\n renderPreview?: API_IframeRenderer;\n handleAPI(api: API): void;\n getConfig(): {\n sidebar?: API_SidebarOptions<API>;\n theme?: ThemeVars;\n StoryMapper?: API_StoryMapper;\n [k: string]: any;\n } & Partial<API_UIOptions>;\n [key: string]: any;\n}\ntype API_IframeRenderer = (storyId: string, viewMode: API_ViewMode, id: string, baseUrl: string, scale: number, queryParams: Record<string, any>) => ReactElement<any, any> | null;\ninterface API_UIOptions {\n name?: string;\n url?: string;\n goFullScreen: boolean;\n showStoriesPanel: boolean;\n showAddonPanel: boolean;\n addonPanelInRight: boolean;\n theme?: ThemeVars;\n selectedPanel?: string;\n}\ninterface API_Layout {\n initialActive: API_ActiveTabsType;\n navSize: number;\n bottomPanelHeight: number;\n rightPanelWidth: number;\n /**\n * The sizes of the panels when they were last visible used to restore the sizes when the panels\n * are shown again eg. when toggling fullscreen, panels, etc.\n */\n recentVisibleSizes: {\n navSize: number;\n bottomPanelHeight: number;\n rightPanelWidth: number;\n };\n panelPosition: API_PanelPositions;\n showTabs: boolean;\n showToolbar: boolean;\n /** @deprecated, will be removed in 8.0 - this API no longer works */\n isToolshown?: boolean;\n}\ninterface API_UI {\n name?: string;\n url?: string;\n enableShortcuts: boolean;\n}\ntype API_PanelPositions = 'bottom' | 'right';\ntype API_ActiveTabsType = 'sidebar' | 'canvas' | 'addons';\ninterface API_SidebarOptions<API = any> {\n showRoots?: boolean;\n filters?: Record<string, API_FilterFunction>;\n collapsedRoots?: string[];\n renderLabel?: (item: API_HashEntry, api: API) => any;\n}\ninterface OnClearOptions {\n /** `true` when the user manually dismissed the notification. */\n dismissed: boolean;\n /** `true` when the notification timed out after the set duration. */\n timeout: boolean;\n}\ninterface OnClickOptions {\n /** Function to dismiss the notification. */\n onDismiss: () => void;\n}\n/**\n * @deprecated Use ReactNode for the icon instead.\n * @see https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#icons-is-deprecated\n */\ninterface DeprecatedIconType {\n name: string;\n color?: string;\n}\ninterface API_Notification {\n id: string;\n content: {\n headline: string;\n subHeadline?: string | any;\n };\n duration?: number;\n link?: string;\n icon?: React.ReactNode | DeprecatedIconType;\n onClear?: (options: OnClearOptions) => void;\n onClick?: (options: OnClickOptions) => void;\n}\ntype API_Versions = Record<string, string>;\ntype API_SetRefData = Partial<API_ComposedRef & {\n setStoriesData: SetStoriesStoryData;\n storyIndex: StoryIndex;\n}>;\ntype API_StoryMapper = (ref: API_ComposedRef, story: SetStoriesStory) => SetStoriesStory;\ninterface API_LoadedRefData {\n index?: API_IndexHash;\n filteredIndex?: API_IndexHash;\n indexError?: Error;\n previewInitialized: boolean;\n}\ninterface API_ComposedRef extends API_LoadedRefData {\n id: string;\n title?: string;\n url: string;\n type?: 'auto-inject' | 'unknown' | 'lazy' | 'server-checked';\n expanded?: boolean;\n versions?: API_Versions;\n loginUrl?: string;\n version?: string;\n sourceUrl?: string;\n /** DO NOT USE THIS */\n internal_index?: StoryIndex;\n}\ntype API_ComposedRefUpdate = Partial<Pick<API_ComposedRef, 'title' | 'type' | 'expanded' | 'index' | 'filteredIndex' | 'versions' | 'loginUrl' | 'version' | 'indexError' | 'previewInitialized' | 'sourceUrl' | 'internal_index'>>;\ntype API_Refs = Record<string, API_ComposedRef>;\ntype API_RefId = string;\ntype API_RefUrl = string;\n\ntype Addon_Types = Exclude<Addon_TypesEnum, Addon_TypesEnum.experimental_PAGE | Addon_TypesEnum.experimental_SIDEBAR_BOTTOM | Addon_TypesEnum.experimental_TEST_PROVIDER | Addon_TypesEnum.experimental_SIDEBAR_TOP>;\ninterface Addon_ArgType<TArg = unknown> extends InputType {\n defaultValue?: TArg;\n}\ntype Addons_ArgTypes<TArgs = Args> = {\n [key in keyof Partial<TArgs>]: Addon_ArgType<TArgs[key]>;\n} & {\n [key in string]: Addon_ArgType<unknown>;\n};\ntype Addon_Comparator<T> = ((a: T, b: T) => boolean) | ((a: T, b: T) => number);\ntype Addon_StorySortMethod = 'configure' | 'alphabetical';\ninterface Addon_StorySortObjectParameter {\n method?: Addon_StorySortMethod;\n order?: any[];\n locales?: string;\n includeNames?: boolean;\n}\ntype IndexEntryLegacy = [StoryId, any, Parameters, Parameters];\ntype Addon_StorySortComparator = Addon_Comparator<IndexEntryLegacy>;\ntype Addon_StorySortParameter = Addon_StorySortComparator | Addon_StorySortObjectParameter;\ntype Addon_StorySortComparatorV7 = Addon_Comparator<IndexEntry>;\ntype Addon_StorySortParameterV7 = Addon_StorySortComparatorV7 | Addon_StorySortObjectParameter;\ninterface Addon_OptionsParameter extends Object {\n storySort?: Addon_StorySortParameter;\n theme?: {\n base: string;\n brandTitle?: string;\n };\n [key: string]: any;\n}\ninterface Addon_OptionsParameterV7 extends Object {\n storySort?: Addon_StorySortParameterV7;\n theme?: {\n base: string;\n brandTitle?: string;\n };\n [key: string]: any;\n}\ntype Addon_StoryContext<TRenderer extends Renderer = Renderer> = StoryContext<TRenderer>;\ntype Addon_StoryContextUpdate = Partial<Addon_StoryContext>;\ninterface Addon_ReturnTypeFramework<ReturnType> extends Renderer {\n component: any;\n storyResult: ReturnType;\n canvasElement: any;\n}\ntype Addon_PartialStoryFn<ReturnType = unknown> = PartialStoryFn<Addon_ReturnTypeFramework<ReturnType>>;\ntype Addon_LegacyStoryFn<ReturnType = unknown> = LegacyStoryFn<Addon_ReturnTypeFramework<ReturnType>>;\ntype Addon_ArgsStoryFn<ReturnType = unknown> = ArgsStoryFn<Addon_ReturnTypeFramework<ReturnType>>;\ntype Addon_StoryFn<ReturnType = unknown> = StoryFn<Addon_ReturnTypeFramework<ReturnType>>;\ntype Addon_DecoratorFunction<StoryFnReturnType = unknown> = DecoratorFunction<Addon_ReturnTypeFramework<StoryFnReturnType>>;\ntype Addon_LoaderFunction = LoaderFunction<Addon_ReturnTypeFramework<unknown>>;\ninterface Addon_WrapperSettings {\n options: object;\n parameters: {\n [key: string]: any;\n };\n}\ntype Addon_StoryWrapper = (storyFn: Addon_LegacyStoryFn, context: Addon_StoryContext, settings: Addon_WrapperSettings) => any;\ntype Addon_MakeDecoratorResult = (...args: any) => any;\ninterface Addon_AddStoryArgs<StoryFnReturnType = unknown> {\n id: StoryId;\n kind: StoryKind;\n name: StoryName;\n storyFn: Addon_StoryFn<StoryFnReturnType>;\n parameters: Parameters;\n}\ntype Addon_ClientApiAddon<StoryFnReturnType = unknown> = Addon_Type & {\n apply: (a: Addon_StoryApi<StoryFnReturnType>, b: any[]) => any;\n};\ninterface Addon_ClientApiAddons<StoryFnReturnType> {\n [key: string]: Addon_ClientApiAddon<StoryFnReturnType>;\n}\ntype Addon_ClientApiReturnFn<StoryFnReturnType = unknown> = (...args: any[]) => Addon_StoryApi<StoryFnReturnType>;\ninterface Addon_StoryApi<StoryFnReturnType = unknown> {\n kind: StoryKind;\n add: (storyName: StoryName, storyFn: Addon_StoryFn<StoryFnReturnType>, parameters?: Parameters) => Addon_StoryApi<StoryFnReturnType>;\n addDecorator: (decorator: Addon_DecoratorFunction<StoryFnReturnType>) => Addon_StoryApi<StoryFnReturnType>;\n addLoader: (decorator: Addon_LoaderFunction) => Addon_StoryApi<StoryFnReturnType>;\n addParameters: (parameters: Parameters) => Addon_StoryApi<StoryFnReturnType>;\n [k: string]: string | Addon_ClientApiReturnFn<StoryFnReturnType>;\n}\ninterface Addon_ClientStoryApi<StoryFnReturnType = unknown> {\n}\ntype Addon_LoadFn = () => any;\ntype Addon_RequireContext = any;\ntype Addon_Loadable = Addon_RequireContext | [Addon_RequireContext] | Addon_LoadFn;\ntype Addon_BaseDecorators<StoryFnReturnType> = Array<(story: () => StoryFnReturnType, context: Addon_StoryContext) => StoryFnReturnType>;\ninterface Addon_BaseAnnotations<TArgs, StoryFnReturnType, TRenderer extends Renderer = Renderer> {\n /**\n * Dynamic data that are provided (and possibly updated by) Storybook and its addons.\n *\n * @see [Arg story inputs](https://storybook.js.org/docs/api/csf#args-story-inputs)\n */\n args?: Partial<TArgs>;\n /**\n * ArgTypes encode basic metadata for args, such as `name`, `description`, `defaultValue` for an\n * arg. These get automatically filled in by Storybook Docs.\n *\n * @see [Arg types](https://storybook.js.org/docs/api/arg-types)\n */\n argTypes?: Addons_ArgTypes<TArgs>;\n /**\n * Custom metadata for a story.\n *\n * @see [Parameters](https://storybook.js.org/docs/writing-stories/parameters)\n */\n parameters?: Parameters;\n /**\n * Wrapper components or Storybook decorators that wrap a story.\n *\n * Decorators defined in Meta will be applied to every story variation.\n *\n * @see [Decorators](https://storybook.js.org/docs/writing-stories/decorators)\n */\n decorators?: Addon_BaseDecorators<StoryFnReturnType>;\n /**\n * Define a custom render function for the story(ies). If not passed, a default render function by\n * the framework will be used.\n */\n render?: (args: TArgs, context: Addon_StoryContext<TRenderer>) => StoryFnReturnType;\n /** Function that is executed after the story is rendered. */\n play?: (context: Addon_StoryContext<TRenderer>) => Promise<void> | void;\n}\ninterface Addon_Annotations<TArgs, StoryFnReturnType> extends Addon_BaseAnnotations<TArgs, StoryFnReturnType> {\n /**\n * Used to only include certain named exports as stories. Useful when you want to have non-story\n * exports such as mock data or ignore a few stories.\n *\n * @example\n *\n * ```ts\n * includeStories: ['SimpleStory', 'ComplexStory'];\n * includeStories: /.*Story$/;\n * ```\n *\n * @see [Non-story exports](https://storybook.js.org/docs/api/csf#non-story-exports)\n */\n includeStories?: string[] | RegExp;\n /**\n * Used to exclude certain named exports. Useful when you want to have non-story exports such as\n * mock data or ignore a few stories.\n *\n * @example\n *\n * ```ts\n * excludeStories: ['simpleData', 'complexData'];\n * excludeStories: /.*Data$/;\n * ```\n *\n * @see [Non-story exports](https://storybook.js.org/docs/api/csf#non-story-exports)\n */\n excludeStories?: string[] | RegExp;\n}\ninterface Addon_BaseMeta<ComponentType> {\n /**\n * Title of the story which will be presented in the navigation. **Should be unique.**\n *\n * Stories can be organized in a nested structure using \"/\" as a separator.\n *\n * Since CSF 3.0 this property is optional.\n *\n * @example\n *\n * ```ts\n * export default { title: 'Design System/Atoms/Button' };\n * ```\n *\n * @see [Story Hierarchy](https://storybook.js.org/docs/writing-stories/naming-components-and-hierarchy)\n */\n title?: string;\n /**\n * Manually set the id of a story, which in particular is useful if you want to rename stories\n * without breaking permalinks.\n *\n * Storybook will prioritize the id over the title for ID generation, if provided, and will\n * prioritize the story.storyName over the export key for display.\n *\n * @see [Sidebar and URLs](https://storybook.js.org/docs/configure/user-interface/sidebar-and-urls#permalink-to-stories)\n */\n id?: string;\n /**\n * The primary component for your story.\n *\n * Used by addons for automatic prop table generation and display of other component metadata.\n */\n component?: ComponentType;\n /**\n * Auxiliary sub-components that are part of the stories.\n *\n * Used by addons for automatic prop table generation and display of other component metadata.\n *\n * @deprecated\n * @example\n *\n * ```ts\n * import { Button, ButtonGroup } from './components';\n *\n * export default {\n * subcomponents: { Button, ButtonGroup },\n * };\n * ```\n *\n * By defining them each component will have its tab in the args table.\n */\n subcomponents?: Record<string, ComponentType>;\n}\ntype Addon_BaseStoryObject<TArgs, StoryFnReturnType> = {\n /** Override the display name in the UI */\n storyName?: string;\n};\ntype Addon_BaseStoryFn<TArgs, StoryFnReturnType> = {\n (args: TArgs, context: Addon_StoryContext): StoryFnReturnType;\n} & Addon_BaseStoryObject<TArgs, StoryFnReturnType>;\ntype BaseStory<TArgs, StoryFnReturnType> = Addon_BaseStoryFn<TArgs, StoryFnReturnType> | Addon_BaseStoryObject<TArgs, StoryFnReturnType>;\ninterface Addon_RenderOptions {\n active: boolean;\n}\ntype Addon_Type = Addon_BaseType | Addon_PageType | Addon_WrapperType | Addon_SidebarBottomType | Addon_SidebarTopType | Addon_TestProviderType<Addon_TestProviderState>;\ninterface Addon_BaseType {\n /**\n * The title of the addon. This can be a simple string, but it can also be a\n * React.FunctionComponent or a React.ReactElement.\n */\n title: FC | ReactNode | (() => string);\n /**\n * The type of the addon.\n *\n * @example\n *\n * ```ts\n * Addon_TypesEnum.PANEL;\n * ```\n */\n type: Exclude<Addon_Types, Addon_TypesEnum.PREVIEW | Addon_TypesEnum.experimental_PAGE | Addon_TypesEnum.experimental_SIDEBAR_BOTTOM | Addon_TypesEnum.experimental_SIDEBAR_TOP | Addon_TypesEnum.experimental_TEST_PROVIDER>;\n /**\n * The unique id of the addon.\n *\n * @example 'my-org-name/my-addon-name';\n *\n * @warn This will become non-optional in 8.0\n *\n * This needs to be globally unique, so we recommend prefixing it with your org name or npm package name.\n *\n * Do not prefix with `storybook`, this is reserved for core storybook feature and core addons.\n */\n id?: string;\n /**\n * This component will wrap your `render` function.\n *\n * With it you can determine if you want your addon to be rendered or not.\n *\n * This is to facilitate addons keeping state, and keep listening for events even when they are\n * not currently on screen/rendered.\n */\n route?: (routeOptions: RenderData) => string;\n /** This will determine the value of `active` prop of your render function. */\n match?: (matchOptions: RenderData & {\n tabId?: string;\n }) => boolean;\n /**\n * The actual contents of your addon.\n *\n * This is called as a function, so if you want to use hooks, your function needs to return a\n * JSX.Element within which components are rendered\n */\n render: (props: Partial<Addon_RenderOptions>) => ReturnType<FC<Partial<Addon_RenderOptions>>>;\n /** @unstable */\n paramKey?: string;\n /** @unstable */\n disabled?: boolean | ((parameters: API_StoryEntry['parameters']) => boolean);\n /** @unstable */\n hidden?: boolean;\n}\ninterface Addon_PageType {\n type: Addon_TypesEnum.experimental_PAGE;\n /** The unique id of the page. */\n id: string;\n /** The URL to navigate to when Storybook needs to navigate to this page. */\n url: string;\n /** The title is used in mobile mode to represent the page in the navigation. */\n title: FC | string | ReactElement | ReactNode;\n /**\n * The main content of the addon, a function component without any props. Storybook will render\n * your component always.\n *\n * If you want to render your component only when the URL matches, use the `Route` component.\n *\n * @example\n *\n * ```jsx\n * import { Route } from '@storybook/core/router';\n *\n * Render: () => {\n * return (\n * <Route path=\"/my-addon\">\n * {' '}\n * <MyAddonContent />{' '}\n * </Route>\n * );\n * };\n * ```\n */\n render: FC;\n}\ninterface Addon_WrapperType {\n type: Addon_TypesEnum.PREVIEW;\n /** The unique id of the page. */\n id: string;\n /**\n * A React.FunctionComponent that wraps the story.\n *\n * This component must accept a children prop, and render it.\n */\n render: FC<PropsWithChildren<{\n index: number;\n children: ReactNode;\n id: string;\n storyId: StoryId;\n }>>;\n}\n/** @deprecated This doesn't do anything anymore and will be removed in Storybook 9.0. */\ninterface Addon_SidebarBottomType {\n type: Addon_TypesEnum.experimental_SIDEBAR_BOTTOM;\n /** The unique id of the tool. */\n id: string;\n /** A React.FunctionComponent. */\n render: FC;\n}\n/** @deprecated This will be removed in Storybook 9.0. */\ninterface Addon_SidebarTopType {\n type: Addon_TypesEnum.experimental_SIDEBAR_TOP;\n /** The unique id of the tool. */\n id: string;\n /** A React.FunctionComponent. */\n render: FC;\n}\ninterface Addon_TestProviderType<Details extends {\n [key: string]: any;\n} = NonNullable<unknown>> {\n type: Addon_TypesEnum.experimental_TEST_PROVIDER;\n /** The unique id of the test provider. */\n id: string;\n name: string;\n /** @deprecated Use render instead */\n title?: (state: TestProviderConfig & Addon_TestProviderState<Details>) => ReactNode;\n /** @deprecated Use render instead */\n description?: (state: TestProviderConfig & Addon_TestProviderState<Details>) => ReactNode;\n render?: (state: TestProviderConfig & Addon_TestProviderState<Details>) => ReactNode;\n sidebarContextMenu?: (options: {\n context: API_HashEntry;\n state: TestProviderConfig & Addon_TestProviderState<Details>;\n }) => ReactNode;\n stateUpdater?: (state: TestProviderConfig & Addon_TestProviderState<Details>, update: Partial<Addon_TestProviderState<Details>>) => void | Partial<TestProviderConfig & Addon_TestProviderState<Details>>;\n runnable?: boolean;\n}\ntype Addon_TestProviderState<Details extends {\n [key: string]: any;\n} = NonNullable<unknown>> = Pick<Addon_TestProviderType, 'runnable'> & {\n progress?: TestingModuleProgressReportProgress;\n details: Details;\n cancellable: boolean;\n cancelling: boolean;\n running: boolean;\n failed: boolean;\n crashed: boolean;\n error?: {\n name: string;\n message?: string;\n };\n};\ntype Addon_TypeBaseNames = Exclude<Addon_TypesEnum, Addon_TypesEnum.PREVIEW | Addon_TypesEnum.experimental_PAGE | Addon_TypesEnum.experimental_SIDEBAR_BOTTOM | Addon_TypesEnum.experimental_SIDEBAR_TOP | Addon_TypesEnum.experimental_TEST_PROVIDER>;\ninterface Addon_TypesMapping extends Record<Addon_TypeBaseNames, Addon_BaseType> {\n [Addon_TypesEnum.PREVIEW]: Addon_WrapperType;\n [Addon_TypesEnum.experimental_PAGE]: Addon_PageType;\n [Addon_TypesEnum.experimental_SIDEBAR_BOTTOM]: Addon_SidebarBottomType;\n [Addon_TypesEnum.experimental_SIDEBAR_TOP]: Addon_SidebarTopType;\n [Addon_TypesEnum.experimental_TEST_PROVIDER]: Addon_TestProviderType<Addon_TestProviderState>;\n}\ntype Addon_Loader<API> = (api: API) => void;\ninterface Addon_Loaders<API> {\n [key: string]: Addon_Loader<API>;\n}\ninterface Addon_Collection<T = Addon_Type> {\n [key: string]: T;\n}\ninterface Addon_Elements {\n [key: string]: Addon_Collection;\n}\ninterface Addon_ToolbarConfig {\n hidden?: boolean;\n}\ninterface Addon_Config {\n theme?: ThemeVars;\n toolbar?: {\n [id: string]: Addon_ToolbarConfig;\n };\n sidebar?: API_SidebarOptions;\n [key: string]: any;\n}\ndeclare enum Addon_TypesEnum {\n /**\n * This API is used to create a tab the toolbar above the canvas, This API might be removed in the\n * future.\n *\n * @unstable\n */\n TAB = \"tab\",\n /** This adds panels to the addons side panel. */\n PANEL = \"panel\",\n /** This adds items in the toolbar above the canvas - on the left side. */\n TOOL = \"tool\",\n /** This adds items in the toolbar above the canvas - on the right side. */\n TOOLEXTRA = \"toolextra\",\n /**\n * This adds wrapper components around the canvas/iframe component storybook renders.\n *\n * @unstable this API is not stable yet, and is likely to change in 8.0.\n */\n PREVIEW = \"preview\",\n /**\n * This adds pages that render instead of the canvas.\n *\n * @unstable\n */\n experimental_PAGE = \"page\",\n /**\n * This adds items in the bottom of the sidebar.\n *\n * @deprecated This doesn't do anything anymore and will be removed in Storybook 9.0.\n */\n experimental_SIDEBAR_BOTTOM = \"sidebar-bottom\",\n /**\n * This adds items in the top of the sidebar.\n *\n * @deprecated This will be removed in Storybook 9.0.\n */\n experimental_SIDEBAR_TOP = \"sidebar-top\",\n /** This adds items to the Testing Module in the sidebar. */\n experimental_TEST_PROVIDER = \"test-provider\"\n}\n\ninterface Renderer extends Renderer$1 {\n}\n\ntype OrString<T extends string> = T | (string & {});\ntype ViewMode = OrString<ViewMode$1 | 'settings'> | undefined;\ntype Layout = 'centered' | 'fullscreen' | 'padded' | 'none';\ninterface StorybookParameters {\n options?: Addon_OptionsParameter;\n /**\n * The layout property defines basic styles added to the preview body where the story is rendered.\n *\n * If you pass `none`, no styles are applied.\n */\n layout?: Layout;\n}\ninterface StorybookInternalParameters extends StorybookParameters {\n fileName?: string;\n docsOnly?: true;\n}\ntype Path = string;\n\ninterface WebRenderer extends Renderer {\n canvasElement: HTMLElement;\n}\ntype ModuleExport = any;\ntype ModuleExports = Record<string, ModuleExport>;\ntype ModuleImportFn = (path: Path) => Promise<ModuleExports>;\ntype MaybePromise<T> = Promise<T> | T;\ntype TeardownRenderToCanvas = () => MaybePromise<void>;\ntype RenderToCanvas<TRenderer extends Renderer> = (context: RenderContext<TRenderer>, element: TRenderer['canvasElement']) => MaybePromise<void | TeardownRenderToCanvas>;\ninterface ProjectAnnotations<TRenderer extends Renderer> extends ProjectAnnotations$2<TRenderer> {\n addons?: ProjectAnnotations<TRenderer>[];\n testingLibraryRender?: (...args: never[]) => {\n unmount: () => void;\n };\n renderToCanvas?: RenderToCanvas<TRenderer>;\n renderToDOM?: RenderToCanvas<TRenderer>;\n}\ntype NamedExportsOrDefault<TExport> = TExport | {\n default: TExport;\n};\ntype NamedOrDefaultProjectAnnotations<TRenderer extends Renderer = Renderer> = NamedExportsOrDefault<ProjectAnnotations<TRenderer>>;\ntype NormalizedProjectAnnotations<TRenderer extends Renderer = Renderer> = Omit<ProjectAnnotations<TRenderer>, 'decorators' | 'loaders' | 'runStep' | 'beforeAll'> & {\n argTypes?: StrictArgTypes;\n globalTypes?: StrictGlobalTypes;\n decorators?: DecoratorFunction<TRenderer>[];\n loaders?: LoaderFunction<TRenderer>[];\n runStep: StepRunner<TRenderer>;\n beforeAll: BeforeAll;\n};\ntype NormalizedComponentAnnotations<TRenderer extends Renderer = Renderer> = Omit<ComponentAnnotations<TRenderer>, 'decorators' | 'loaders'> & {\n id: ComponentId;\n title: ComponentTitle;\n argTypes?: StrictArgTypes;\n decorators?: DecoratorFunction<TRenderer>[];\n loaders?: LoaderFunction<TRenderer>[];\n};\ntype NormalizedStoryAnnotations<TRenderer extends Renderer = Renderer> = Omit<StoryAnnotations<TRenderer>, 'storyName' | 'story' | 'decorators' | 'loaders'> & {\n moduleExport: ModuleExport;\n id: StoryId;\n argTypes?: StrictArgTypes;\n name: StoryName;\n userStoryFn?: StoryFn<TRenderer>;\n decorators?: DecoratorFunction<TRenderer>[];\n loaders?: LoaderFunction<TRenderer>[];\n};\ntype CSFFile<TRenderer extends Renderer = Renderer> = {\n meta: NormalizedComponentAnnotations<TRenderer>;\n stories: Record<StoryId, NormalizedStoryAnnotations<TRenderer>>;\n projectAnnotations?: NormalizedProjectAnnotations<TRenderer>;\n moduleExports: ModuleExports;\n};\ntype PreparedStory<TRenderer extends Renderer = Renderer> = StoryContextForEnhancers<TRenderer> & {\n moduleExport: ModuleExport;\n originalStoryFn: StoryFn<TRenderer>;\n undecoratedStoryFn: LegacyStoryFn<TRenderer>;\n unboundStoryFn: LegacyStoryFn<TRenderer>;\n applyLoaders: (context: StoryContext<TRenderer>) => Promise<StoryContext<TRenderer>['loaded']>;\n applyBeforeEach: (context: StoryContext<TRenderer>) => Promise<CleanupCallback[]>;\n applyAfterEach: (context: StoryContext<TRenderer>) => Promise<void>;\n playFunction?: (context: StoryContext<TRenderer>) => Promise<void> | void;\n runStep: StepRunner<TRenderer>;\n mount: (context: StoryContext<TRenderer>) => () => Promise<Canvas>;\n testingLibraryRender?: (...args: never[]) => unknown;\n renderToCanvas?: ProjectAnnotations<TRenderer>['renderToCanvas'];\n usesMount: boolean;\n storyGlobals: Globals;\n};\ntype PreparedMeta<TRenderer extends Renderer = Renderer> = Omit<StoryContextForEnhancers<TRenderer>, 'name' | 'story'> & {\n moduleExport: ModuleExport;\n};\ntype BoundStory<TRenderer extends Renderer = Renderer> = PreparedStory<TRenderer> & {\n storyFn: PartialStoryFn<TRenderer>;\n};\ndeclare type RenderContext<TRenderer extends Renderer = Renderer> = StoryIdentifier & {\n showMain: () => void;\n showError: (error: {\n title: string;\n description: string;\n }) => void;\n showException: (err: Error) => void;\n forceRemount: boolean;\n storyContext: StoryContext<TRenderer>;\n storyFn: PartialStoryFn<TRenderer>;\n unboundStoryFn: LegacyStoryFn<TRenderer>;\n};\n\ninterface BuilderStats {\n toJson: () => any;\n}\ntype Builder_WithRequiredProperty<Type, Key extends keyof Type> = Type & {\n [Property in Key]-?: Type[Property];\n};\ntype Builder_Unpromise<T extends Promise<any>> = T extends Promise<infer U> ? U : never;\ntype Builder_EnvsRaw = Record<string, string>;\n\ntype RenderContextCallbacks<TRenderer extends Renderer> = Pick<RenderContext<TRenderer>, 'showMain' | 'showError' | 'showException'>;\ntype StoryRenderOptions = {\n autoplay?: boolean;\n forceInitialArgs?: boolean;\n};\ntype ResolvedModuleExportType = 'component' | 'meta' | 'story';\n/**\n * What do we know about an of={} call?\n *\n * Technically, the type names aren't super accurate:\n *\n * - Meta === `CSFFile`\n * - Story === `PreparedStory` But these shorthands capture the idea of what is being talked about\n */\ntype ResolvedModuleExportFromType<TType extends ResolvedModuleExportType, TRenderer extends Renderer = Renderer> = TType extends 'component' ? {\n type: 'component';\n component: TRenderer['component'];\n projectAnnotations: NormalizedProjectAnnotations<Renderer>;\n} : TType extends 'meta' ? {\n type: 'meta';\n csfFile: CSFFile<TRenderer>;\n preparedMeta: PreparedMeta;\n} : {\n type: 'story';\n story: PreparedStory<TRenderer>;\n};\ntype ResolvedModuleExport<TRenderer extends Renderer = Renderer> = {\n type: ResolvedModuleExportType;\n} & (ResolvedModuleExportFromType<'component', TRenderer> | ResolvedModuleExportFromType<'meta', TRenderer> | ResolvedModuleExportFromType<'story', TRenderer>);\ninterface DocsContextProps<TRenderer extends Renderer = Renderer> {\n /**\n * Register a CSF file that this docs entry uses. Used by the `<Meta of={} />` block to attach,\n * and the `<Story meta={} />` bloc to reference\n */\n referenceMeta: (metaExports: ModuleExports, attach: boolean) => void;\n /**\n * Find a component, meta or story object from the direct export(s) from the CSF file. This is the\n * API that drives the `of={}` syntax.\n */\n resolveOf<TType extends ResolvedModuleExportType>(moduleExportOrType: ModuleExport | TType, validTypes?: TType[]): ResolvedModuleExportFromType<TType, TRenderer>;\n /**\n * Find a story's id from the name of the story. This is primarily used by the `<Story name={} />\n * block. Note that the story must be part of the primary CSF file of the docs entry.\n */\n storyIdByName: (storyName: StoryName) => StoryId;\n /**\n * Syncronously find a story by id (if the id is not provided, this will look up the primary story\n * in the CSF file, if such a file exists).\n */\n storyById: (id?: StoryId) => PreparedStory<TRenderer>;\n /** Syncronously find all stories of the component referenced by the CSF file. */\n componentStories: () => PreparedStory<TRenderer>[];\n /** Syncronously find all stories by CSF file. */\n componentStoriesFromCSFFile: (csfFile: CSFFile<TRenderer>) => PreparedStory<TRenderer>[];\n /** Get the story context of the referenced story. */\n getStoryContext: (story: PreparedStory<TRenderer>) => Omit<StoryContext<TRenderer>, 'abortSignal' | 'canvasElement' | 'step' | 'context'>;\n /** Asyncronously load an arbitrary story by id. */\n loadStory: (id: StoryId) => Promise<PreparedStory<TRenderer>>;\n /** Render a story to a given HTML element and keep it up to date across context changes */\n renderStoryToElement: (story: PreparedStory<TRenderer>, element: HTMLElement, callbacks: RenderContextCallbacks<TRenderer>, options: StoryRenderOptions) => () => Promise<void>;\n /** Storybook channel -- use for low level event watching/emitting */\n channel: Channel$1;\n /** Project annotations -- can be read to get the project's global annotations */\n projectAnnotations: NormalizedProjectAnnotations<TRenderer>;\n}\ntype DocsRenderFunction<TRenderer extends Renderer> = (docsContext: DocsContextProps<TRenderer>, docsParameters: Parameters, element: HTMLElement) => Promise<void>;\n\ntype Store_CSFExports<TRenderer extends Renderer$1 = Renderer$1, TArgs extends Args = Args> = {\n default: ComponentAnnotations<TRenderer, TArgs>;\n __esModule?: boolean;\n __namedExportsOrder?: string[];\n};\n/** A story function with partial args, used internally by composeStory */\ntype PartialArgsStoryFn<TRenderer extends Renderer$1 = Renderer$1, TArgs = Args> = (args?: TArgs) => (TRenderer & {\n T: TArgs;\n})['storyResult'];\n/**\n * A story that got recomposed for portable stories, containing all the necessary data to be\n * rendered in external environments\n */\ntype ComposedStoryFn<TRenderer extends Renderer$1 = Renderer$1, TArgs = Args> = PartialArgsStoryFn<TRenderer, TArgs> & {\n args: TArgs;\n id: StoryId;\n play?: (context?: Partial<StoryContext<TRenderer, Partial<TArgs>>>) => Promise<void>;\n run: (context?: Partial<StoryContext<TRenderer, Partial<TArgs>>>) => Promise<void>;\n load: () => Promise<void>;\n storyName: string;\n parameters: Parameters;\n argTypes: StrictArgTypes<TArgs>;\n reporting: ReporterAPI;\n tags: Tag$1[];\n globals: Globals;\n};\n/**\n * Based on a module of stories, it returns all stories within it, filtering non-stories Each story\n * will have partial props, as their props should be handled when composing stories\n */\ntype StoriesWithPartialProps<TRenderer extends Renderer$1, TModule> = {\n [K in keyof TModule as TModule[K] extends StoryAnnotationsOrFn<infer _, infer _TProps> ? K : never]: TModule[K] extends StoryAnnotationsOrFn<infer _, infer TProps> ? ComposedStoryFn<TRenderer, Partial<TProps>> : unknown;\n};\n/**\n * Type used for integrators of portable stories, as reference when creating their own composeStory\n * function\n */\ninterface ComposeStoryFn<TRenderer extends Renderer$1 = Renderer$1, TArgs extends Args = Args> {\n (storyAnnotations: AnnotatedStoryFn<TRenderer, TArgs> | StoryAnnotations<TRenderer, TArgs>, componentAnnotations: ComponentAnnotations<TRenderer, TArgs>, projectAnnotations: ProjectAnnotations$2<TRenderer>, exportsName?: string): ComposedStoryFn;\n}\n\ntype SupportedFrameworks = 'angular' | 'ember' | 'experimental-nextjs-vite' | 'html-vite' | 'html-webpack5' | 'nextjs' | 'preact-vite' | 'preact-webpack5' | 'react-native-web-vite' | 'react-vite' | 'react-webpack5' | 'server-webpack5' | 'svelte-vite' | 'svelte-webpack5' | 'sveltekit' | 'vue3-vite' | 'vue3-webpack5' | 'web-components-vite' | 'web-components-webpack5' | 'qwik' | 'solid' | 'nuxt' | 'react-rsbuild' | 'vue3-rsbuild';\n\ntype SupportedRenderers = 'react' | 'react-native' | 'vue3' | 'angular' | 'ember' | 'preact' | 'svelte' | 'qwik' | 'html' | 'web-components' | 'server' | 'solid' | 'nuxt';\n\nexport { type API_ActiveTabsType, type API_BaseEntry, type API_ComponentEntry, type API_ComposedRef, type API_ComposedRefUpdate, type API_DocsEntry, type API_FilterFunction, type API_GroupEntry, type API_HashEntry, type API_IframeRenderer, type API_IndexHash, type API_Layout, type API_LeafEntry, type API_LoadedRefData, type API_MatchOptions, type API_Notification, type API_OptionsData, type API_PanelPositions, type API_PreparedIndexEntry, type API_PreparedStoryIndex, type API_Provider, type API_ProviderData, type API_RefId, type API_RefUrl, type API_Refs, type API_ReleaseNotes, type API_RenderOptions, type API_RootEntry, type API_RouteOptions, type API_SetRefData, type API_Settings, type API_SidebarOptions, type API_StateMerger, type API_StatusObject, type API_StatusState, type API_StatusUpdate, type API_StatusValue, type API_StoryEntry, type API_StoryMapper, type API_UI, type API_UIOptions, type API_UnknownEntries, type API_Version, type API_Versions$1 as API_Versions, type API_ViewMode, type Addon_AddStoryArgs, type Addon_Annotations, type Addon_ArgType, type Addon_ArgsStoryFn, type Addon_BaseAnnotations, type Addon_BaseDecorators, type Addon_BaseMeta, type Addon_BaseStoryFn, type Addon_BaseStoryObject, type Addon_BaseType, type Addon_ClientApiAddon, type Addon_ClientApiAddons, type Addon_ClientApiReturnFn, type Addon_ClientStoryApi, type Addon_Collection, type Addon_Comparator, type Addon_Config, type Addon_DecoratorFunction, type Addon_Elements, type Addon_LegacyStoryFn, type Addon_LoadFn, type Addon_Loadable, type Addon_Loader, type Addon_LoaderFunction, type Addon_Loaders, type Addon_MakeDecoratorResult, type Addon_OptionsParameter, type Addon_OptionsParameterV7, type Addon_PageType, type Addon_PartialStoryFn, type Addon_RenderOptions, type Addon_RequireContext, type Addon_SidebarBottomType, type Addon_SidebarTopType, type Addon_StoryApi, type Addon_StoryContext, type Addon_StoryContextUpdate, type Addon_StoryFn, type Addon_StorySortComparator, type Addon_StorySortComparatorV7, type Addon_StorySortMethod, type Addon_StorySortObjectParameter, type Addon_StorySortParameter, type Addon_StorySortParameterV7, type Addon_StoryWrapper, type Addon_TestProviderState, type Addon_TestProviderType, type Addon_ToolbarConfig, type Addon_Type, type Addon_Types, Addon_TypesEnum, type Addon_TypesMapping, type Addon_WrapperSettings, type Addon_WrapperType, type Addons_ArgTypes, type BaseIndexEntry, type BaseIndexInput, type BaseStory, type BoundStory, type Builder, type BuilderName, type BuilderOptions, type BuilderResult, type BuilderStats, type Builder_EnvsRaw, type Builder_Unpromise, type Builder_WithRequiredProperty, type CLIOptions, type CSFFile, type CompatibleString, type ComposeStoryFn, type ComposedStoryFn, type CoreCommon_AddonEntry, type CoreCommon_AddonInfo, type CoreCommon_OptionsEntry, type CoreCommon_ResolvedAddonPreset, type CoreCommon_ResolvedAddonVirtual, type CoreCommon_StorybookInfo, type CoreConfig, type DocsContextProps, type DocsIndexEntry, type DocsIndexInput, type DocsOptions, type DocsPreparedPayload, type DocsRenderFunction, type Entry, type GlobalsUpdatedPayload, type IndexEntry, type IndexEntryLegacy, type IndexInput, type IndexInputStats, type IndexedCSFFile, type IndexedStory, type Indexer, type IndexerOptions, type LoadOptions, type LoadedPreset, type Middleware, type ModuleExport, type ModuleExports, type ModuleImportFn, type NamedOrDefaultProjectAnnotations, type NormalizedComponentAnnotations, type NormalizedProjectAnnotations, type NormalizedStoriesSpecifier, type NormalizedStoryAnnotations, type Options, type PackageJson, type PartialArgsStoryFn, type Path, type PreparedMeta, type PreparedStory, type Preset, type PresetConfig, type PresetProperty, type PresetPropertyFn, type PresetValue, type Presets, type PreviewAnnotation, type ProjectAnnotations, type Ref, type RenderContext, type RenderContextCallbacks, type RenderToCanvas, type Renderer, type RendererName, type ResolvedModuleExport, type ResolvedModuleExportFromType, type ResolvedModuleExportType, type SetGlobalsPayload, type SetStoriesPayload, type SetStoriesStory, type SetStoriesStoryData, type Stats, type Store_CSFExports, type StoriesEntry, type StoriesSpecifier, type StoriesWithPartialProps, type StoryIndex, type StoryIndexEntry, type StoryIndexInput, type StoryIndexV2, type StoryIndexV3, type StoryPreparedPayload, type StoryRenderOptions, type StorybookConfig, type StorybookConfigOptions, type StorybookConfigRaw, type StorybookInternalParameters, type StorybookParameters, type SupportedFrameworks, type SupportedRenderers, type TagOptions, type TagsOptions, type TeardownRenderToCanvas, type TestBuildConfig, type TestBuildFlags, type TypescriptOptions, type V3CompatIndexEntry, type VersionCheck, type ViewMode, type WebRenderer };\n","import { ComponentType, ComponentProps } from 'react';\nimport { Args, ComponentAnnotations, AnnotatedStoryFn, ArgsStoryFn, ArgsFromMeta, StoryAnnotations, StrictArgs, DecoratorFunction, LoaderFunction, StoryContext as StoryContext$1, ProjectAnnotations } from 'storybook/internal/types';\nimport { R as ReactRenderer } from './types-5617c98e.js';\n\ndeclare global {\n\tinterface SymbolConstructor {\n\t\treadonly observable: symbol;\n\t}\n}\n\n/**\nReturns a boolean for whether the two given types are equal.\n\n@link https://github.com/microsoft/TypeScript/issues/27024#issuecomment-421529650\n@link https://stackoverflow.com/questions/68961864/how-does-the-equals-work-in-typescript/68963796#68963796\n*/\ntype IsEqual<T, U> =\n\t(<G>() => G extends T ? 1 : 2) extends\n\t(<G>() => G extends U ? 1 : 2)\n\t\t? true\n\t\t: false;\n\n/**\nFilter out keys from an object.\n\nReturns `never` if `Exclude` is strictly equal to `Key`.\nReturns `never` if `Key` extends `Exclude`.\nReturns `Key` otherwise.\n\n@example\n```\ntype Filtered = Filter<'foo', 'foo'>;\n//=> never\n```\n\n@example\n```\ntype Filtered = Filter<'bar', string>;\n//=> never\n```\n\n@example\n```\ntype Filtered = Filter<'bar', 'foo'>;\n//=> 'bar'\n```\n\n@see {Except}\n*/\ntype Filter<KeyType, ExcludeType> = IsEqual<KeyType, ExcludeType> extends true ? never : (KeyType extends ExcludeType ? never : KeyType);\n\n/**\nCreate a type from an object type without certain keys.\n\nThis type is a stricter version of [`Omit`](https://www.typescriptlang.org/docs/handbook/release-notes/typescript-3-5.html#the-omit-helper-type). The `Omit` type does not restrict the omitted keys to be keys present on the given type, while `Except` does. The benefits of a stricter type are avoiding typos and allowing the compiler to pick up on rename refactors automatically.\n\nThis type was proposed to the TypeScript team, which declined it, saying they prefer that libraries implement stricter versions of the built-in types ([microsoft/TypeScript#30825](https://github.com/microsoft/TypeScript/issues/30825#issuecomment-523668235)).\n\n@example\n```\nimport type {Except} from 'type-fest';\n\ntype Foo = {\n\ta: number;\n\tb: string;\n\tc: boolean;\n};\n\ntype FooWithoutA = Except<Foo, 'a' | 'c'>;\n//=> {b: string};\n```\n\n@category Object\n*/\ntype Except<ObjectType, KeysType extends keyof ObjectType> = {\n\t[KeyType in keyof ObjectType as Filter<KeyType, KeysType>]: ObjectType[KeyType];\n};\n\n/**\n@see Simplify\n*/\ninterface SimplifyOptions {\n\t/**\n\tDo the simplification recursively.\n\n\t@default false\n\t*/\n\tdeep?: boolean;\n}\n\n// Flatten a type without worrying about the result.\ntype Flatten<\n\tAnyType,\n\tOptions extends SimplifyOptions = {},\n> = Options['deep'] extends true\n\t? {[KeyType in keyof AnyType]: Simplify<AnyType[KeyType], Options>}\n\t: {[KeyType in keyof AnyType]: AnyType[KeyType]};\n\n/**\nUseful to flatten the type output to improve type hints shown in editors. And also to transform an interface into a type to aide with assignability.\n\n@example\n```\nimport type {Simplify} from 'type-fest';\n\ntype PositionProps = {\n\ttop: number;\n\tleft: number;\n};\n\ntype SizeProps = {\n\twidth: number;\n\theight: number;\n};\n\n// In your editor, hovering over `Props` will show a flattened object with all the properties.\ntype Props = Simplify<PositionProps & SizeProps>;\n```\n\nSometimes it is desired to pass a value as a function argument that has a different type. At first inspection it may seem assignable, and then you discover it is not because the `value`'s type definition was defined as an interface. In the following example, `fn` requires an argument of type `Record<string, unknown>`. If the value is defined as a literal, then it is assignable. And if the `value` is defined as type using the `Simplify` utility the value is assignable. But if the `value` is defined as an interface, it is not assignable because the interface is not sealed and elsewhere a non-string property could be added to the interface.\n\nIf the type definition must be an interface (perhaps it was defined in a third-party npm package), then the `value` can be defined as `const value: Simplify<SomeInterface> = ...`. Then `value` will be assignable to the `fn` argument. Or the `value` can be cast as `Simplify<SomeInterface>` if you can't re-declare the `value`.\n\n@example\n```\nimport type {Simplify} from 'type-fest';\n\ninterface SomeInterface {\n\tfoo: number;\n\tbar?: string;\n\tbaz: number | undefined;\n}\n\ntype SomeType = {\n\tfoo: number;\n\tbar?: string;\n\tbaz: number | undefined;\n};\n\nconst literal = {foo: 123, bar: 'hello', baz: 456};\nconst someType: SomeType = literal;\nconst someInterface: SomeInterface = literal;\n\nfunction fn(object: Record<string, unknown>): void {}\n\nfn(literal); // Good: literal object type is sealed\nfn(someType); // Good: type is sealed\nfn(someInterface); // Error: Index signature for type 'string' is missing in type 'someInterface'. Because `interface` can be re-opened\nfn(someInterface as Simplify<SomeInterface>); // Good: transform an `interface` into a `type`\n```\n\n@link https://github.com/microsoft/TypeScript/issues/15300\n\n@category Object\n*/\ntype Simplify<\n\tAnyType,\n\tOptions extends SimplifyOptions = {},\n> = Flatten<AnyType> extends AnyType\n\t? Flatten<AnyType, Options>\n\t: AnyType;\n\n/**\nCreate a type that makes the given keys optional. The remaining keys are kept as is. The sister of the `SetRequired` type.\n\nUse-case: You want to define a single model where the only thing that changes is whether or not some of the keys are optional.\n\n@example\n```\nimport type {SetOptional} from 'type-fest';\n\ntype Foo = {\n\ta: number;\n\tb?: string;\n\tc: boolean;\n}\n\ntype SomeOptional = SetOptional<Foo, 'b' | 'c'>;\n// type SomeOptional = {\n// \ta: number;\n// \tb?: string; // Was already optional and still is.\n// \tc?: boolean; // Is now optional.\n// }\n```\n\n@category Object\n*/\ntype SetOptional<BaseType, Keys extends keyof BaseType> =\n\tSimplify<\n\t\t// Pick just the keys that are readonly from the base type.\n\t\tExcept<BaseType, Keys> &\n\t\t// Pick the keys that should be mutable from the base type and make them mutable.\n\t\tPartial<Pick<BaseType, Keys>>\n\t>;\n\n/**\n * Metadata to configure the stories for a component.\n *\n * @see [Default export](https://storybook.js.org/docs/api/csf#default-export)\n */\ntype Meta<TCmpOrArgs = Args> = [TCmpOrArgs] extends [ComponentType<any>] ? ComponentAnnotations<ReactRenderer, ComponentProps<TCmpOrArgs>> : ComponentAnnotations<ReactRenderer, TCmpOrArgs>;\n/**\n * Story function that represents a CSFv2 component example.\n *\n * @see [Named Story exports](https://storybook.js.org/docs/api/csf#named-story-exports)\n */\ntype StoryFn<TCmpOrArgs = Args> = [TCmpOrArgs] extends [ComponentType<any>] ? AnnotatedStoryFn<ReactRenderer, ComponentProps<TCmpOrArgs>> : AnnotatedStoryFn<ReactRenderer, TCmpOrArgs>;\n/**\n * Story object that represents a CSFv3 component example.\n *\n * @see [Named Story exports](https://storybook.js.org/docs/api/csf#named-story-exports)\n */\ntype StoryObj<TMetaOrCmpOrArgs = Args> = [TMetaOrCmpOrArgs] extends [\n {\n render?: ArgsStoryFn<ReactRenderer, any>;\n component?: infer Component;\n args?: infer DefaultArgs;\n }\n] ? Simplify<(Component extends ComponentType<any> ? ComponentProps<Component> : unknown) & ArgsFromMeta<ReactRenderer, TMetaOrCmpOrArgs>> extends infer TArgs ? StoryAnnotations<ReactRenderer, AddMocks<TArgs, DefaultArgs>, SetOptional<TArgs, keyof TArgs & keyof DefaultArgs>> : never : TMetaOrCmpOrArgs extends ComponentType<any> ? StoryAnnotations<ReactRenderer, ComponentProps<TMetaOrCmpOrArgs>> : StoryAnnotations<ReactRenderer, TMetaOrCmpOrArgs>;\ntype AddMocks<TArgs, DefaultArgs> = Simplify<{\n [T in keyof TArgs]: T extends keyof DefaultArgs ? DefaultArgs[T] extends (...args: any) => any & {\n mock: {};\n } ? DefaultArgs[T] : TArgs[T] : TArgs[T];\n}>;\ntype Decorator<TArgs = StrictArgs> = DecoratorFunction<ReactRenderer, TArgs>;\ntype Loader<TArgs = StrictArgs> = LoaderFunction<ReactRenderer, TArgs>;\ntype StoryContext<TArgs = StrictArgs> = StoryContext$1<ReactRenderer, TArgs>;\ntype Preview = ProjectAnnotations<ReactRenderer>;\n\nexport { AddMocks as A, Decorator as D, Loader as L, Meta as M, Preview as P, StoryFn as S, StoryObj as a, StoryContext as b, Simplify as c, SetOptional as d };\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8],"mappings":"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0D,CD92D7Cb,SC82D6C,ED92DlCT,OC82DkC,CAAA,EAAA,GD92DvBgB,SC82DuB,CAAA,IAAA,CAAA;AAAA,UD72DhIX,MAAAA,CC82DA6F;UD52DA5E,YC42D4EkX,CAAAA,kBD52D7Chc,QC42D6Cgc,GD52DlChc,QC42DkCgc,EAAAA,UD52DhBzb,IC42DgByb,CAAAA,SD52DFhY,wBC42DEgY,CD52DuB/X,SC42DvB+X,ED52DkCxY,OC42DlCwY,CAAAA,ED52D0C7W,QC42D1C6W,CD52DmD5X,kBC42DnD4X,CD52DsExY,OC42DtEwY,CAAAA,CAAAA,CAAAA;EACtDA,MAAAA,ED52DpBza,MC42DoBya,CAAAA,MAAAA,EAAAA,GAAAA,CAAAA;EAAnBtS,WAAAA,ED32DI1E,WC22DJ0E;EAIuBsS,aAAAA,ED92DjB/X,SC82DiB+X,CAAAA,eAAAA,CAAAA;EAAf0D,KAAAA,EAAAA,OAAAA;EACY1D,eAAAA,ED72DZ/W,OC62DY+W,CD72DJ/X,SC62DI+X,CAAAA;EAAf0D,QAAAA,ED52DJrb,QC42DIqb;EAN+C/V,IAAAA,EDr2DvDzE,YCq2DuDyE,CDr2D1C1F,SCq2D0C0F,EDr2D/BnG,OCq2D+BmG,CAAAA;EAAoB,OAAA,EAAA,IAAA;EAYhFgD,MAAAA,ED/2DO9I,MC+2DP8I;EAA+CrD,KAAAA,ED92DzCrF,SC82DyCqF,CAAAA,OAAAA,CAAAA;EAAWA,SAAAA,ED72DhDpG,YC62DgDoG;;;UD12DrD/E,sBC02DiE2O,CAAAA,kBD12DxBlT,QC02DwBkT,GD12DblT,QC02DakT,EAAAA,UD12DK3S,IC02DL2S,CAAAA,SD12DmBpO,YC02DnBoO,CD12DgCjP,SC02DhCiP,ED12D2C1P,OC02D3C0P,CAAAA,CAAAA;;UDv2DjE9N,mBC02DyB4W,CAAAA,kBD12Dahc,QC02Dbgc,GD12DwBhc,QC02DxBgc,EAAAA,UD12D0Czb,IC02D1Cyb,CAAAA,SD12DwDlX,YC02DxDkX,CD12DqE/X,SC02DrE+X,ED12DgFxY,OC02DhFwY,CAAAA,CAAAA;KDx2D9B3W,SAAAA,GCy2DwB2W,MAAAA;KDx2DxB9W,YCw2DSmE,CAAAA,kBDx2DsBrJ,QCw2DtBqJ,GDx2DiCrJ,QCw2DjCqJ,EAAAA,UDx2DmD9I,ICw2DnD8I,CAAAA,GAAAA,CAAAA,KAAAA,EDx2DmEhE,SCw2DnEgE,EAAAA,IAAAA,EDx2DoF/D,YCw2DpF+D,CDx2DiGpF,SCw2DjGoF,EDx2D4G7F,OCw2D5G6F,CAAAA,EAAAA,GDx2DuHvF,OCw2DvHuF,CAAAA,IAAAA,CAAAA,GAAAA,IAAAA;KDv2DT/D,YCw2DmB0W,CAAAA,kBDx2DYhc,QCw2DZgc,GDx2DuBhc,QCw2DvBgc,EAAAA,UDx2DyCzb,ICw2DzCyb,CAAAA,GAAAA,CAAAA,OAAAA,EDx2D2D5W,mBCw2D3D4W,CDx2D+E/X,SCw2D/E+X,EDx2D0FxY,OCw2D1FwY,CAAAA,EAAAA,GDx2DqGlY,OCw2DrGkY,CAAAA,IAAAA,CAAAA,GAAAA,IAAAA;KDv2DnBzW,cCu2DQuE,CAAAA,kBDv2DyB9J,QCu2DzB8J,GDv2DoC9J,QCu2DpC8J,EAAAA,UDv2DsDvJ,ICu2DtDuJ,CAAAA,GAAAA,CAAAA,MAAAA,CAAAA,EDv2DwE1F,kBCu2DxE0F,CDv2D2FtE,OCu2D3FsE,CDv2DmGtG,OCu2DnGsG,CAAAA,CAAAA,EAAAA,GDv2D+G7F,SCu2D/G6F,CAAAA,aAAAA,CAAAA;KDt2DRrE,aCu2DUsE,CAAAA,kBDv2DsB/J,QCu2DtB+J,GDv2DiC/J,QCu2DjC+J,EAAAA,UDv2DmDxJ,ICu2DnDwJ,CAAAA,GAAAA,CAAAA,OAAAA,EDv2DqEjF,YCu2DrEiF,CDv2DkF9F,SCu2DlF8F,EDv2D6FvG,OCu2D7FuG,CAAAA,EAAAA,GDv2DwG9F,SCu2DxG8F,CAAAA,aAAAA,CAAAA;KDt2DVrE,WCs2DmB,CAAA,kBDt2DW1F,QCs2DX,GDt2DsBA,QCs2DtB,EAAA,UDt2DwCO,ICs2DxC,CAAA,GAAA,CAAA,IAAA,EDt2DuDiD,OCs2DvD,EAAA,OAAA,EDt2DuEsB,YCs2DvE,CDt2DoFb,SCs2DpF,EDt2D+FT,OCs2D/F,CAAA,EAAA,GAAA,CDt2D2GS,SCs2D3G,GAAA;EA8CX0b,CAAAA,EDn5DNnc,OCm5DMmc;CAAgCrW,CAAAA,CAAAA,aAAAA,CAAAA;KDj5DxCrE,OCi5DmDqE,CAAAA,kBDj5DzBtJ,QCi5DyBsJ,GDj5DdtJ,QCi5DcsJ,EAAAA,UDj5DI/I,ICi5DJ+I,CAAAA,GDj5DY7D,aCi5DZ6D,CDj5D0BrF,SCi5D1BqF,EDj5DqC9F,OCi5DrC8F,CAAAA,GDj5D8C5D,WCi5D9C4D,CDj5D0DrF,SCi5D1DqF,EDj5DqE9F,OCi5DrE8F,CAAAA;KDh5DnD3D,iBCg5D+D0E,CAAAA,kBDh5D3BrK,QCg5D2BqK,GDh5DhBrK,QCg5DgBqK,EAAAA,UDh5DE9J,ICg5DF8J,CAAAA,GAAAA,CAAAA,EAAAA,EDh5De9E,cCg5Df8E,CDh5D8BpG,SCg5D9BoG,EDh5DyC7G,OCg5DzC6G,CAAAA,EAAAA,CAAAA,EDh5DoDvF,YCg5DpDuF,CDh5DiEpG,SCg5DjEoG,EDh5D4E7G,OCg5D5E6G,CAAAA,EAAAA,GDh5DuFpG,SCg5DvFoG,CAAAA,aAAAA,CAAAA;KD/4D/DzE,mBCq5DoBqP,CAAAA,kBDr5DkBjV,QCq5DlBiV,GDr5D6BjV,QCq5D7BiV,EAAAA,UDr5D+C1U,ICq5D/C0U,CAAAA,GAAAA,CAAAA,OAAAA,EDr5DiExP,aCq5DjEwP,CDr5D+EhR,SCq5D/EgR,EDr5D0FzR,OCq5D1FyR,CAAAA,EAAAA,UAAAA,EDr5D8GtP,iBCq5D9GsP,CDr5DgIhR,SCq5DhIgR,EDr5D2IzR,OCq5D3IyR,CAAAA,EAAAA,EAAAA,GDr5DwJxP,aCq5DxJwP,CDr5DsKhR,SCq5DtKgR,EDr5DiLzR,OCq5DjLyR,CAAAA;KDp5DpBpP,UCs5D0BmW,CAAAA,kBDt5DGhc,QCs5DHgc,GDt5Dchc,QCs5Ddgc,EAAAA,UDt5DgCzb,ICs5DhCyb,CAAAA,GAAAA,CAAAA,KAAAA,EDt5DgD3W,SCs5DhD2W,EAAAA,IAAAA,EDt5DiE1W,YCs5DjE0W,CDt5D8E/X,SCs5D9E+X,EDt5DyFxY,OCs5DzFwY,CAAAA,EAAAA,OAAAA,EDt5D0GlX,YCs5D1GkX,CDt5DuH/X,SCs5DvH+X,EDt5DkIxY,OCs5DlIwY,CAAAA,EAAAA,GDt5D6IlY,OCs5D7IkY,CAAAA,IAAAA,CAAAA;UDr5DrBlW,eCq5DQiD,CAAAA,kBDr5D0B/I,QCq5D1B+I,GDr5DqC/I,QCq5DrC+I,EAAAA,UDr5DuDxI,ICq5DvDwI,CAAAA,CAAAA;EACUiT;;;;;AAiFK;;EAKsBzS,UAAAA,CAAAA,EDp+DtC5D,iBCo+DsC4D,CDp+DpBtF,SCo+DoBsF,EDp+DTnI,QCo+DSmI,CDp+DA/F,OCo+DA+F,CAAAA,CAAAA,EAAAA,GDp+DY5D,iBCo+DZ4D,CDp+D8BtF,SCo+D9BsF,EDp+DyCnI,QCo+DzCmI,CDp+DkD/F,OCo+DlD+F,CAAAA,CAAAA;EAAoBf;;;;;EAOtEsE,UAAAA,CAAAA,EDr+DYpK,UCq+DG;EAAmB6G;;;;;EAAyC4X,IAAAA,CAAAA,ED/9DrE3b,OC+9DqE2b,CD/9D7D3d,OC+9D6D2d,CAAAA;EACtEjG;;;;;;EAEYxM,QAAAA,CAAAA,ED39DPlJ,OC29DOkJ,CD39DCnL,QC29DDmL,CD39DUlL,OC29DVkL,CAAAA,CAAAA;EAAqDX;;;;;EACvDW,OAAAA,CAAAA,EDt9DNpK,cCs9DMoK,CDt9DSzK,SCs9DTyK,EDt9DoBlL,OCs9DpBkL,CAAAA,EAAAA,GDt9D+BpK,cCs9D/BoK,CDt9D8CzK,SCs9D9CyK,EDt9DyDlL,OCs9DzDkL,CAAAA;EAAqDX;;;;;;;;EAOrD,UAAA,CAAA,EDp9DHlJ,UCo9DG,CDp9DQZ,SCo9DR,EDp9DmBT,OCo9DnB,CAAA,EAAA,GDp9D8BqB,UCo9D9B,CDp9DyCZ,SCo9DzC,EDp9DoDT,OCo9DpD,CAAA;;;;AC5/EqC;;;;;2BFijB5BuB,UAAUd,WAAWT,aAAWuB,UAAUd,WAAWT;;;AGhjBlF;AAKA;EACE,MAAA,CAAA,EH+iBWkC,WG/iBX,CH+iBuBzB,SG/iBvB,EH+iBkCT,OG/iBlC,CAAA;EACC;EAA2B,IAAA,CAAA,EHgjBnBhB,GGhjBmB,EAAA;EAAO,KAAA,CAAA,EAAA,CAAA,OAAA,EHijBfsC,YGjjBe,CHijBFb,SGjjBE,EHijBST,OGjjBT,CAAA,EAAA,GHijBoBS,SGjjBpB,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"}