import { ComponentType } from 'react';
export type CustomComponentDisplayMode = 'inline' | 'block';
export type MarkstreamCustomComponent
= ComponentType
& {
markstreamDisplay?: CustomComponentDisplayMode;
};
export type CustomComponentMap = Record;
export declare function subscribeCustomComponents(listener: () => void): () => void;
export declare function getCustomComponentsRevision(): number;
export declare function setCustomComponents(id: string, mapping: CustomComponentMap): void;
export declare function setCustomComponents(mapping: CustomComponentMap): void;
export declare function getCustomNodeComponents(customId?: string): CustomComponentMap;
export declare function removeCustomComponents(id: string): void;
export declare function clearGlobalCustomComponents(): void;
export declare function getCustomComponentDisplay(component: ComponentType | null | undefined): CustomComponentDisplayMode | undefined;
export declare function withMarkstreamComponentDisplay>(component: T, display: CustomComponentDisplayMode): T & {
markstreamDisplay: CustomComponentDisplayMode;
};