import 'server-only';
import { type ReactNode, type ComponentType } from 'react';
import { type PropsWithContext, type PropsWithOptionalContext } from '../context/types.js';
import { type CmsContentAreaComponent } from './cms-content-area/index.js';
import { type CmsEditableComponent } from './cms-editable/index.js';
import { type CmsContentComponent } from './cms-content/rsc.js';
import { type OptimizelyCompositionComponent } from './visual-builder/index.js';
import { type RichTextComponent } from './rich-text/index.js';
export type { BaseStyleDefinition, ElementStyleDefinition, LayoutProps, LayoutPropsSetting, LayoutPropsSettingChoices, LayoutPropsSettingKeys, LayoutPropsSettingValues, NodeStyleDefinition, StyleDefinition, StyleSetting, } from './cms-styles/index.js';
export { extractSettings, readSetting } from './cms-styles/index.js';
export * from './cms-styles/index.js';
export { isNode, isComponentNode, isComponentNodeOfType, isStructureNode, isElementNode, } from './visual-builder/functions.js';
/**
* Fallback while RSC hasn't been moved from Canary to Main
*/
type ReactServerComponentType
= ComponentType
| ((props: P) => Promise);
/**
* Wrapper function to turn context dependant components into easy to use
* server components
*
* @param component The component where the `ctx` parameter must be fulfilled
* @returns The component, without CTX parameter
*/
export declare function serverContextAware(component: ReactServerComponentType
): ComponentType>>;
/**
* Client side Optimizely CMS Editable
*/
export declare const CmsEditable: CmsEditableComponent;
/**
* Client side Optimizely CMS Content, leveraging the CMS Context to load the
* content type and content data when needed
*/
export declare const CmsContent: CmsContentComponent;
export type { CmsContentComponent, CmsContentProps } from './cms-content/rsc.js';
/**
* Client side Optimizely CMS Content Area, leveraging the CMS Context to infer
* the connection to Optimizely Graph and component dictionary.
*/
export declare const CmsContentArea: CmsContentAreaComponent;
export type { CmsContentAreaClassMapper, CmsContentAreaComponent, CmsContentAreaProps, ContentAreaItemDefinition, } from './cms-content-area/index.js';
/**
* Client side Optimizely Composition (e.g. Visual Builder), leveraging the CMS
* Context to infer the connection to Optimizely Graph and component
* dictionary.
*/
export declare const OptimizelyComposition: OptimizelyCompositionComponent;
/**
* Client side renderer for Rich Text
*/
export declare const RichText: RichTextComponent;
export type { RichTextComponent, RichTextProps, RichTextNode, StringNode, TypedNode, NodeInput, } from './rich-text/index.js';
export { DefaultComponents as RichTextComponentDictionary, createHtmlComponent, } from './rich-text/components.js';
export { isNodeInput, isNonEmptyString, isRichTextNode, isStringNode, isText, isTypedNode, } from './rich-text/utils.js';