import { apiPlugin } from '@storyblok/js'; import { ArrayFn } from '@storyblok/js'; import { AsyncFn } from '@storyblok/js'; import { buildStoryblokImage } from '@storyblok/richtext'; import { ComponentPropsWithoutRef } from 'react'; import { ComponentType } from 'react'; import { default as default_2 } from 'react'; import { ForwardRefExoticComponent } from 'react'; import { ISbAlternateObject } from '@storyblok/js'; import { ISbCache } from '@storyblok/js'; import { ISbComponentType } from 'storyblok-js-client'; import { ISbConfig } from '@storyblok/js'; import { ISbContentMangmntAPI } from '@storyblok/js'; import { ISbDimensions } from '@storyblok/js'; import { ISbError } from '@storyblok/js'; import { ISbManagmentApiResult } from '@storyblok/js'; import { ISbResponse } from '@storyblok/js'; import { ISbResult } from '@storyblok/js'; import { ISbSchema } from '@storyblok/js'; import { ISbStories } from '@storyblok/js'; import { ISbStoriesParams } from '@storyblok/js'; import { ISbStory } from '@storyblok/js'; import { ISbStoryData } from '@storyblok/js'; import { ISbStoryParams } from '@storyblok/js'; import { ISbThrottle } from '@storyblok/js'; import { loadStoryblokBridge } from '@storyblok/js'; import { ReactNode } from 'react'; import { RefAttributes } from 'react'; import { registerStoryblokBridge } from '@storyblok/js'; import { renderRichText } from '@storyblok/richtext'; import { SbBlokData } from '@storyblok/js'; import { SbBlokKeyDataTypes } from '@storyblok/js'; import { SbRichTextDoc } from '@storyblok/richtext'; import { SbRichTextElement } from '@storyblok/richtext'; import { SbRichTextElementByType } from '@storyblok/richtext'; import { SbRichTextImageOptions } from '@storyblok/richtext'; import { SbRichTextInput } from '@storyblok/richtext'; import { SbRichTextMark } from '@storyblok/richtext'; import { SbRichTextNode } from '@storyblok/richtext'; import { SbRichTextProps } from '@storyblok/richtext'; import { SbRichTextRenderContext } from '@storyblok/richtext'; import { SbRichTextRendererMap } from '@storyblok/richtext'; import { SbSDKOptions } from '@storyblok/js'; import { splitTableRows } from '@storyblok/richtext'; import { StoryblokBridgeConfigV2 } from '@storyblok/js'; import { StoryblokBridgeV2 } from '@storyblok/js'; import { StoryblokClient } from '@storyblok/js'; import { StoryblokComponentType } from '@storyblok/js'; import { storyblokEditable } from '@storyblok/js'; import { useStoryblokBridge } from '@storyblok/js'; export { apiPlugin } export { ArrayFn } export { AsyncFn } export { buildStoryblokImage } /** * @deprecated This utility is no longer needed and will be removed in a future release. * * Recursively converts HTML attributes in a React element tree to their JSX property names. * * @param {React.ReactElement} element The React element to process. * @return {React.ReactElement} A new React element with converted attributes. */ export declare function convertAttributesInElement(element: default_2.ReactElement | default_2.ReactElement[]): default_2.ReactElement | default_2.ReactElement[]; export declare function createRichTextRenderer(options: SbReactRichTextRenderContext): (document: SbRichTextInput) => ReactNode | null; declare type DivProps = Omit, 'children'>; export declare const getComponent: (componentKey: string) => React.ElementType | false; export declare const getCustomFallbackComponent: () => React.ElementType; export declare const getEnableFallbackComponent: () => boolean; export { ISbAlternateObject } export { ISbCache } export { ISbConfig } export { ISbContentMangmntAPI } export { ISbDimensions } export { ISbError } export { ISbManagmentApiResult } export { ISbResponse } export { ISbResult } export declare const isBridgeLoaded: () => boolean; export declare const isBrowser: () => boolean; export { ISbSchema } export { ISbStories } export { ISbStoriesParams } export { ISbStory } export { ISbStoryData } export { ISbStoryParams } export { ISbThrottle } export declare const isIframe: () => boolean; export declare const isServer: () => boolean; /** * Detects if the current page is running inside Storyblok's Visual Editor. * Requires the page to be in an iframe context with the _storyblok URL parameter. * This is more reliable than just checking for the URL parameter alone. */ export declare const isVisualEditor: () => boolean; export { loadStoryblokBridge } export { registerStoryblokBridge } export { renderRichText } export { SbBlokData } export { SbBlokKeyDataTypes } export declare interface SbReactComponentsMap { [key: string]: default_2.ElementType; } declare type SbReactRichTextComponent = ComponentType>; export declare type SbReactRichTextComponentMap = { [K in SbRichTextElement]?: SbReactRichTextComponent; }; /** * Props type for React richtext node/mark components. * Similar to SbRichTextProps but uses ReactNode for children instead of string. */ export declare type SbReactRichTextProps = SbRichTextElementByType[T] & { children?: ReactNode; }; export declare interface SbReactRichTextRenderContext { optimizeImage?: boolean | SbRichTextImageOptions; components?: SbReactRichTextComponentMap; data?: unknown; } export declare interface SbReactSDKOptions extends SbSDKOptions { components?: SbReactComponentsMap; enableFallbackComponent?: boolean; customFallbackComponent?: default_2.ElementType; } export { SbRichTextDoc } export { SbRichTextImageOptions } export { SbRichTextMark } export { SbRichTextNode } export { SbRichTextProps } declare type SbRichTextProps_2 = WrappedProps | UnwrappedProps; export { SbRichTextRenderContext } export { SbRichTextRendererMap } export { SbSDKOptions } export declare const setComponents: (newComponentsMap: SbReactComponentsMap) => Map; export { splitTableRows } export { StoryblokBridgeConfigV2 } export { StoryblokBridgeV2 } export { StoryblokClient } export declare const StoryblokComponent: ForwardRefExoticComponent & RefAttributes>; declare interface StoryblokComponentProps extends Omit, 'blok'> { blok: SbBlokData; } export { StoryblokComponentType } export { storyblokEditable } export declare const storyblokInit: (pluginOptions?: SbReactSDKOptions) => (() => StoryblokClient); export declare const StoryblokRichText: ({ document, optimizeImage, components, data, wrapper, ...rest }: SbRichTextProps_2) => ReactNode; export declare interface StoryblokRichTextProps extends SbReactRichTextRenderContext { optimizeImage?: boolean | SbRichTextImageOptions; document?: SbRichTextInput; } export declare type TUseStoryblokState = (initialStory: ISbStoryData | null, bridgeOptions?: StoryblokBridgeConfigV2) => ISbStoryData | null; declare type UnwrappedProps = StoryblokRichTextProps & { wrapper: false; }; export declare const useStoryblok: (slug: string, apiOptions?: ISbStoriesParams, bridgeOptions?: StoryblokBridgeConfigV2) => ISbStoryData & { [index: string]: any; }>; declare const useStoryblokApi: () => StoryblokClient; export { useStoryblokApi as getStoryblokApi } export { useStoryblokApi } export { useStoryblokBridge } export declare const useStoryblokRichText: (props?: SbReactRichTextRenderContext) => (document: SbRichTextInput) => ReactNode | null; export declare const useStoryblokState: TUseStoryblokState; declare type WrappedProps = StoryblokRichTextProps & DivProps & { wrapper?: true; }; export { }