import type { MenuProps } from "antd"; import type { GroupPermissions } from "../../hooks/group/useGroupPermission"; import type { MemberDisplayItem } from "./groupMemberTypes"; type Translate = (key: string, options?: Record) => string; export interface CrmMemberMenuHandlers { onToggleMute: (member: MemberDisplayItem) => void; onAskMute: (member: MemberDisplayItem) => void; onAskTransfer: (member: MemberDisplayItem) => void; onConfigureAdmin: (member: MemberDisplayItem) => void; onRemoveAdmin: (member: MemberDisplayItem) => void; onAskAssignAdmin: (member: MemberDisplayItem) => void; onAskRemove: (member: MemberDisplayItem) => void; onLeave: () => void; } interface BuildCrmMemberMenuParams { member: MemberDisplayItem; isRealGroup: boolean; permissions: GroupPermissions; actingIsOwner: boolean; /** Set when leaving is not allowed; shown under the item instead of failing on click. */ leaveBlockedReason?: string; handlers: CrmMemberMenuHandlers; t: Translate; } type MenuItems = NonNullable; /** * CRM member menu: no always-disabled entries, a short reason under every * entry that is disabled for lack of rights, owner transfer and removal set apart. */ export declare const buildCrmMemberMenu: ({ member, isRealGroup, permissions, actingIsOwner, leaveBlockedReason, handlers, t, }: BuildCrmMemberMenuParams) => MenuItems; export {}; //# sourceMappingURL=groupMemberMenuCrm.d.ts.map