import * as React from 'react';
import { MessageData } from '../thread-view/index.js';
export { ThreadViewProps as CoreThreadViewProps, MessageAttachment, MessageData, MessageReaction, ThreadViewAPI, ThreadViewState, formatRelativeTime, formatTimestamp, threadAuthorStyles, threadAvatarStyles, threadBodyStyles, threadContainerStyles, threadContentStyles, threadMessageStyles, threadReactionsStyles, threadTimestampStyles } from '../thread-view/index.js';

interface ThreadViewProps {
    messages: MessageData[];
    onReply?: (messageId: string, content: string) => void;
    onReact?: (messageId: string, emoji: string) => void;
    currentUserId?: string;
    className?: string;
}
declare function ThreadView({ messages, onReply, onReact, currentUserId, className, }: ThreadViewProps): React.DetailedReactHTMLElement<{
    className: string;
    role?: string | undefined;
    tabIndex?: number | undefined;
    'aria-label'?: string | undefined;
    'aria-labelledby'?: string | undefined;
    'aria-describedby'?: string | undefined;
    'aria-controls'?: string | undefined;
    'aria-expanded'?: boolean | undefined;
    'aria-selected'?: boolean | undefined;
    'aria-hidden'?: boolean | undefined;
    'aria-disabled'?: boolean | undefined;
    'aria-pressed'?: boolean | "mixed" | undefined;
    'aria-checked'?: boolean | "mixed" | undefined;
    'aria-current'?: boolean | "page" | "step" | "location" | "date" | "time" | undefined;
    'aria-live'?: "off" | "assertive" | "polite" | undefined;
    'aria-atomic'?: boolean | undefined;
}, HTMLElement>;
declare namespace ThreadView {
    var displayName: string;
}

export { ThreadView, type ThreadViewProps };
