import { CommentMediaImage, CommentMediaVideo } from "./comment-media.mjs"; import { EmptyStateProps } from "../../frontend/ugc/libs/ui-mobile/src/patterns/empty-state.mjs"; import * as _$react_jsx_runtime0 from "react/jsx-runtime"; import { CSSProperties, ReactNode } from "react"; //#region src/core/components/community-comments-section.d.ts interface CommunityCommentReply { id: string; authorId: string; authorName: string; authorAvatar: string; authorAvatarFrameUrl?: string; authorCornerMarkUrl?: string; body: string; images?: CommentMediaImage[]; video?: CommentMediaVideo; publishedAtLabel: string; publishedAtMs?: number; locationLabel?: string; likeCount: number; isLiked: boolean; /** 子回复总数(嵌套线程展开用)。 */ replyCount?: number; parentCommentId?: string; replyToAuthorName?: string; replies?: CommunityCommentReply[]; repliesCursor?: string; repliesHasMore?: boolean; } interface CommunityComment { id: string; authorId: string; authorName: string; authorAvatar: string; authorAvatarFrameUrl?: string; authorCornerMarkUrl?: string; body: string; images?: CommentMediaImage[]; video?: CommentMediaVideo; publishedAtLabel: string; locationLabel?: string; likeCount: number; isLiked: boolean; replyCount: number; replies: CommunityCommentReply[]; repliesCursor?: string; repliesHasMore?: boolean; } interface CommunityCommentRepliesResult { replies: CommunityCommentReply[]; nextCursor: string; hasMore: boolean; } type CommunityCommentRepliesQueryHook = (postId: string, parentCommentId: string, cursor: string, enabled: boolean) => { data?: CommunityCommentRepliesResult; isLoading: boolean; isFetching?: boolean; }; type ToggleCommunityCommentLikeMutationHook = (postId: string) => { mutateAsync: (commentId: string) => Promise<{ data: { liked: boolean; likeCount: number; }; }>; }; interface CommunityCommentsSectionProps { postId: string; creatorId: string; currentUserId?: string; comments?: CommunityComment[]; loading?: boolean; showTitle?: boolean; className?: string; contentClassName?: string; titleClassName?: string; emptyStateProps?: Partial; loadingSkeletonClassName?: string; commentItemClassName?: string; /** PC 评论面板布局:头像左 + 右侧列(昵称/正文/元信息),无分隔线。 */ isPc?: boolean; commentExpandLabelClassName?: string; replyListClassName?: string; replyPreviewContainerClassName?: string; replyPreviewContainerStyle?: CSSProperties; replyPreviewTextClassName?: string; replyPreviewExpandLabelClassName?: string; replyPreviewExpandButtonStyle?: CSSProperties; expandRepliesDividerClassName?: string; highlightedCommentIds?: string[]; headerContent?: ReactNode; leadContent?: ReactNode; footerContent?: ReactNode; useCommentRepliesQuery: CommunityCommentRepliesQueryHook; useToggleCommentLikeMutation: ToggleCommunityCommentLikeMutationHook; requireAuthenticated: () => Promise; onOpenAuthorProfile: (userId: string) => void; onOpenCommentDetail?: (comment: CommunityComment) => void; onRequestDeleteComment?: (comment: CommunityComment) => void; onReplyComment: (comment: CommunityComment) => void; onReplyReply: (comment: CommunityComment, reply: CommunityCommentReply) => void; } declare function CommunityCommentsSection({ postId, creatorId, currentUserId, comments, loading, showTitle, className, contentClassName, titleClassName, emptyStateProps, loadingSkeletonClassName, commentItemClassName, isPc, commentExpandLabelClassName, replyListClassName, replyPreviewContainerClassName, replyPreviewContainerStyle, replyPreviewTextClassName, replyPreviewExpandLabelClassName, replyPreviewExpandButtonStyle, expandRepliesDividerClassName, highlightedCommentIds, headerContent, leadContent, footerContent, useCommentRepliesQuery, useToggleCommentLikeMutation, requireAuthenticated, onOpenAuthorProfile, onOpenCommentDetail, onRequestDeleteComment, onReplyComment, onReplyReply }: CommunityCommentsSectionProps): _$react_jsx_runtime0.JSX.Element; //#endregion export { CommunityComment, CommunityCommentRepliesQueryHook, CommunityCommentRepliesResult, CommunityCommentReply, CommunityCommentsSection, CommunityCommentsSectionProps, ToggleCommunityCommentLikeMutationHook };