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<import('react').SVGProps<SVGSVGElement> & {
    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;
}
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<HTMLDivElement>;
    threadPortalTarget: HTMLElement | null;
    totalThreadCount: number;
    handleActiveThreadClick: (e: React.MouseEvent) => void;
    handleAddRowCommentClick: (e: React.MouseEvent) => void;
}
export declare const useExpenseAutomationRowCommenting: ({ transactionId, rowEntityType, groupId, }: UseExpenseAutomationRowCommentingArgs) => ExpenseAutomationRowCommenting;
export declare const ExpenseAutomationRowThreadPortals: ({ state, }: {
    state: ExpenseAutomationRowCommenting;
}) => ReactElement | null;
