import type { ArkmeExtensionRatingSummary, ArkmeExtensionReviewCreateResult, ArkmeExtensionReviewItem, ArkmeExtensionReviewPage } from '../extensions/types.js'; export interface ArkmeExtensionReviewTreeNode { item: ArkmeExtensionReviewItem; children: ArkmeExtensionReviewTreeNode[]; } export declare function extensionReviewComposerMode(canCreateTopLevelReview: boolean, hasReplyComposer: boolean): 'top-level' | 'reply' | 'hidden'; export declare function extensionReviewComposerTargets(reviewRef: string, state: ArkmeExtensionReviewComposerState | undefined): boolean; export declare function extensionReviewTree(items: readonly ArkmeExtensionReviewItem[]): ArkmeExtensionReviewTreeNode[]; export declare function applyCreatedExtensionReview(current: ArkmeExtensionReviewPage | undefined, result: ArkmeExtensionReviewCreateResult): ArkmeExtensionReviewPage; export declare function extensionReviewReplyCount(node: ArkmeExtensionReviewTreeNode): number; export declare function extensionRatingLabel(summary: ArkmeExtensionRatingSummary): string; export declare function extensionReviewTimeLabel(createdAtMillis: number, nowMillis?: number): string; export declare function ArkmeExtensionReplyListDialog({ root, onClose, onReply }: { root: ArkmeExtensionReviewTreeNode; onClose(): void; onReply(item: ArkmeExtensionReviewItem): void; }): import("react").JSX.Element; export interface ArkmeExtensionReviewComposerState { parent?: ArkmeExtensionReviewItem; textContent: string; rating: number; clientMutationId: string; error: string; } export declare function extensionReviewComposerCanSubmit(input: { textContent: string; rating: number; replying: boolean; }): boolean; export declare function extensionReviewCreateParams(extensionId: string, state: ArkmeExtensionReviewComposerState): Record; export declare function ArkmeExtensionReviewComposerDialog({ state, submitting, onChange, onClose, onSubmit }: { state: ArkmeExtensionReviewComposerState; submitting: boolean; onChange(next: ArkmeExtensionReviewComposerState): void; onClose(): void; onSubmit(): void; }): import("react").JSX.Element; export declare function ArkmeExtensionInlineReviewComposer({ state, submitting, currentUserAvatarRef, onChange, onSubmit, onCancel }: { state: ArkmeExtensionReviewComposerState; submitting: boolean; currentUserAvatarRef?: string | undefined; onChange(next: ArkmeExtensionReviewComposerState): void; onSubmit(): void; onCancel?: (() => void) | undefined; }): import("react").JSX.Element; export declare function ArkmeExtensionReviews({ extensionId, currentUserAvatarRef, canCreateTopLevelReview, initialRatingSummary, initialPage, }: { extensionId: string; currentUserAvatarRef?: string | undefined; canCreateTopLevelReview?: boolean; initialRatingSummary?: ArkmeExtensionRatingSummary; initialPage?: ArkmeExtensionReviewPage; }): import("react").JSX.Element; //# sourceMappingURL=ArkmeExtensionReviews.d.ts.map