import { RefObject } from 'react';
import { Participant } from '@zoom/videosdk';
import { Menu } from 'primereact/menu';

type ActionCellProps = {
    p: Participant;
    isCurrentUserRow: boolean;
    canToggleUserAudio: boolean;
    loading: boolean;
    showUserMenuButton: boolean;
    handleToggleParticipantMic: (p: Participant) => Promise<void>;
    setSelectedUser: (p: Participant) => void;
    userMenuRef: RefObject<Menu>;
};
/**
 * ActionCell reads selfCameraPermission / selfMicPermission directly from
 * useVideoContext() rather than accepting them as props. This is intentional:
 * PrimeReact DataTable memoizes row rendering based on row data, so changes to
 * the parent's closure (props) don't trigger cell re-renders. As a React
 * component subscribed to context, ActionCell re-renders independently when
 * permission state changes.
 *
 * participationPermissions is also read directly from useSharedContext() for the same reason.
 */
declare const ActionCell: ({ p, isCurrentUserRow, canToggleUserAudio, loading, showUserMenuButton, handleToggleParticipantMic, setSelectedUser, userMenuRef }: ActionCellProps) => import("react/jsx-runtime").JSX.Element;
export default ActionCell;
