import type { StreamingFeatureBoundary } from '../utils/sanitizeStreamingMessageContent';
/**
 * Placeholder types that describe which rich feature is still streaming.
 *
 * @private internal helper of `<ChatMessageItem/>`
 */
export type StreamingFeaturePlaceholderKind = 'map' | 'image' | 'math' | 'feature';
/**
 * Resolves which rich feature is still streaming so the UI can render the matching placeholder.
 *
 * @param boundary - Streaming metadata returned by the sanitizer.
 * @param source - Original message content that contains the pending markup.
 * @returns Friendly placeholder kind to render inside the chat bubble.
 *
 * @private internal helper of `<ChatMessageItem/>`
 */
export declare function resolveStreamingFeaturePlaceholderKind(boundary: StreamingFeatureBoundary, source: string): StreamingFeaturePlaceholderKind;
/**
 * Props for `<StreamingFeaturePlaceholder/>`.
 *
 * @private internal helper of `<ChatMessageItem/>`
 */
export type StreamingFeaturePlaceholderProps = {
    /**
     * Kind of the placeholder to render.
     */
    readonly kind: StreamingFeaturePlaceholderKind;
};
/**
 * Renders the placeholder UI for streaming rich features.
 *
 * @private internal helper of `<ChatMessageItem/>`
 */
export declare function StreamingFeaturePlaceholder({ kind }: StreamingFeaturePlaceholderProps): import("react/jsx-runtime").JSX.Element;
