import { CSSProperties, ReactElement, RefObject } from 'react'; import { ID } from '@zeniai/client-epic-state'; import { ThreadMetadata } from '../../commentsAndNotes/utils/CollaborationTypes'; export declare const StyledAddThreadsIcon: import('@emotion/styled').StyledComponent & { title?: string; } & { theme?: import('@emotion/react').Theme; }, {}, {}>; export interface TransactionRowCommenting { activeThreadId: ID | null; activeThreadMetadata: ThreadMetadata | null; isExistingThreadOpen: boolean; isNewThreadOpen: boolean; isThreadsLoading: boolean; newThreadId: ID; newThreadMetadata: ThreadMetadata | null; portalStyle: CSSProperties | null; roomId: ID; rowRef: RefObject; totalThreadCount: number; handleAddCommentClick: (event: React.MouseEvent) => void; handleCountClick: (event: React.MouseEvent) => void; } /** * Full inline commenting for a transactions-list row, mirroring the Expense * Automation row: hover-to-add a new transaction-level (`transaction.details`) * comment, and click the unresolved count to open the existing thread inline * for view/reply — both in a popup portaled beside the row, no navigation. New * threads use the transaction detail page as their url so notification / email * / drawer clicks route there. The count excludes field-level detail threads * (`transaction.details.`), consistent with the EA row + drawer. */ export declare const useTransactionRowCommenting: (transactionId: ID, transactionType?: string) => TransactionRowCommenting; export declare const TransactionRowThreadPortal: ({ state, }: { state: TransactionRowCommenting; }) => ReactElement | null;