import type React from 'react';
import type { TMessageContent } from "../types/messages.js";
export type MessageContentComponentProps<TContent extends TMessageContent = TMessageContent> = {
    part: TContent;
};
export type MessageRenderer<TContent extends TMessageContent = TMessageContent> = {
    component: React.ComponentType<MessageContentComponentProps<TContent>>;
};
export type MessageRendererRegistry = Record<string, MessageRenderer>;
export declare function createMessageRendererRegistry(): MessageRendererRegistry;
export type RegisterMessageRendererOptions = {
    /**
     * Marks a renderer as built-in. Replacing built-in renderers is expected
     * when consumers customize the default registry, so it does not warn.
     */
    isDefault?: boolean;
};
export declare function registerMessageRenderer<TContent extends TMessageContent>(registry: MessageRendererRegistry, contentType: TContent['type'], renderer: MessageRenderer<TContent>, options?: RegisterMessageRendererOptions): MessageRendererRegistry;
export declare function getMessageRenderer(registry: MessageRendererRegistry, contentType: string): React.ComponentType<MessageContentComponentProps> | undefined;
export declare function mergeMessageRendererRegistries(defaultRegistry: MessageRendererRegistry, customRegistry: MessageRendererRegistry): MessageRendererRegistry;
