import { ComponentType } from 'react'; import { ReactNode } from 'react'; export declare const ADD_BLOCK_TABS: Record; export declare type AddBlockTab = { id: string; tab: React.ComponentType; tabContent: React.ComponentType; }; export declare const CHAI_BUILDER_PANELS: Record; declare type ChaiAsset = { url: string; id?: string; thumbnailUrl?: string; description?: string; width?: number; height?: number; }; declare type ChaiBlock> = { _id: string; _name?: string; _parent?: string | null | undefined; _libBlock?: string; _type: string; partialBlockId?: string; } & T; declare type ChaiFlagOptions = { key: string; value?: any; description?: string; }; declare type ChaiLibrary> = { id: string; name: string; blocks?: ChaiLibraryBlock[]; description?: string; } & T; declare type ChaiLibraryBlock> = { id: string; group: string; name: string; preview?: string; tags?: string[]; description?: string; } & T; declare type ChaiLibraryConfig = { id: string; name: string; description: string; getBlocksList: (library: ChaiLibrary) => Promise[]>; getBlock: ({ library, block, }: { library: ChaiLibrary; block: ChaiLibraryBlock; }) => Promise; }; export declare interface ChaiSidebarPanel { id: string; position: "top" | "bottom"; view?: "standard" | "modal" | "overlay" | "drawer"; button: React.ComponentType<{ isActive: boolean; show: () => void; panelId: string; position: "top" | "bottom"; }>; label: string; panel?: ComponentType; width?: number; isInternal?: boolean; icon?: React.ReactNode; } export declare const getChaiLibrary: (id: string) => ChaiLibraryConfig; export declare const getPreImportHTML: (code: string) => Promise; declare type HTMLString = string; export declare const IfChaiFeatureFlag: ({ flagKey, children }: { flagKey: string; children: React.ReactNode; }) => ReactNode; export declare type MediaManagerProps = { assetId?: string; close: () => void; onSelect: (assets: ChaiAsset | ChaiAsset[]) => void; mode?: "image" | "video" | "audio"; }; export declare const registerChaiAddBlockTab: (id: string, tab: Omit) => void; export declare const registerChaiBlockSettingField: (id: string, component: React.ComponentType) => void; export declare const registerChaiBlockSettingTemplate: (id: string, component: React.ComponentType) => void; export declare const registerChaiBlockSettingWidget: (id: string, component: React.ComponentType) => void; export declare const registerChaiFeatureFlag: (key: string, flagOptions: Omit) => void; export declare const registerChaiFeatureFlags: (flags: Record>) => void; export declare const registerChaiLibrary: = Record>(id: string, library: Omit, "id">) => void; export declare const registerChaiMediaManager: (component: React.ComponentType) => void; export declare const registerChaiPreImportHTMLHook: (fn: (code: string) => Promise) => void; export declare const registerChaiSaveToLibrary: (component: ComponentType) => void; export declare const registerChaiSidebarPanel: (panelId: string, panelOptions: Omit) => void; export declare const registerChaiTopBar: (component: React.ComponentType) => void; export declare const resetSaveToLibrary: () => void; export declare const RJSF_EXTENSIONS: Record; type: string; }>; export declare type SaveToLibraryProps = { blockId: string; blocks: ChaiBlock[]; close: () => void; }; export declare const useChaiAddBlockTabs: () => AddBlockTab[]; export declare const useChaiBlockSettingComponents: (type: "widget" | "field" | "template") => Record>; export declare const useChaiFeatureFlag: (flagKey: string) => boolean; export declare const useChaiFeatureFlags: () => Record; export declare const useChaiLibraries: () => ChaiLibraryConfig[]; export declare const useChaiSidebarPanels: (position: "top" | "bottom") => ChaiSidebarPanel[]; export declare const useMediaManagerComponent: () => ComponentType; export declare const useSaveToLibraryComponent: () => ComponentType | null; export declare const useToggleChaiFeatureFlag: (flagKey: string) => () => void; export declare const useTopBarComponent: () => ComponentType< {}>; export { }