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 type ExpenseAutomationRowEntityType = "expense_automation.transaction.row" | "expense_automation.receipts.row" | "expense_automation.je_schedule.row"; export interface UseExpenseAutomationRowCommentingArgs { rowEntityType: ExpenseAutomationRowEntityType; transactionId: ID; groupId?: ID; /** * Transaction type (expense/deposit/…). When provided, new threads encode * it as the entityType's final segment and use the transaction detail page * as the thread url, so notifications and emails deep-link to the detail * page instead of this list. */ transactionType?: string; } export interface ExpenseAutomationRowCommenting { activeRowThreadId: ID | null; activeRowThreadMetadata: ThreadMetadata | null; isCommentingActive: boolean; isExistingRowThreadOpen: boolean; isNewThreadOpen: boolean; isThreadsLoading: boolean; openThreadId: ID | null; openThreadMetadata: ThreadMetadata | null; portalStyle: CSSProperties | null; roomId: ID; rowRef: RefObject; threadPortalTarget: HTMLElement | null; totalThreadCount: number; handleActiveThreadClick: (e: React.MouseEvent) => void; handleAddRowCommentClick: (e: React.MouseEvent) => void; } export declare const useExpenseAutomationRowCommenting: ({ transactionId, rowEntityType, groupId, transactionType, }: UseExpenseAutomationRowCommentingArgs) => ExpenseAutomationRowCommenting; export declare const ExpenseAutomationRowThreadPortals: ({ state, }: { state: ExpenseAutomationRowCommenting; }) => ReactElement | null;