import type { ChangeEvent } from "react"; export type GroupInfoRow = "member-permission" | "admin-permission" | "invite-link"; export type GroupInfoConfirm = "leave" | "disband" | "delete"; export interface GroupInfoBodyCrmProps { groupName?: string; faceURL?: string; introduction?: string; memberCount?: number; isPublic: boolean; canEditAvatar: boolean; canEditName: boolean; canEditDescription: boolean; canConfigPermissions: boolean; showInviteLink: boolean; showAllowSend: boolean; isOwner: boolean; isAdminOrOwner: boolean; isViewOnlyMember: boolean; notifyEnabled: boolean; isTogglingNotification: boolean; allowSendMessage: boolean; isTogglingSendMessage: boolean; isAvatarUploading: boolean; isSaving: boolean; editingField: "name" | "description" | null; nameValue: string; descriptionValue: string; avatarInputRef: React.RefObject; onNameChange: (value: string) => void; onDescriptionChange: (value: string) => void; onStartEdit: (field: "name" | "description") => void; onCancelEdit: (field: "name" | "description") => void; onSaveEdit: (field: "name" | "description") => void; onAvatarClick: () => void; onAvatarSelect: (event: ChangeEvent) => void; onToggleNotification: (checked: boolean) => void; onToggleSendMessage: (checked: boolean) => void; onOpenRow: (row: GroupInfoRow) => void; onConfirm: (action: GroupInfoConfirm) => void; } /** CRM body of the group info panel: identity, description, settings, admin rows, danger zone. */ declare const GroupInfoBodyCrm: (props: GroupInfoBodyCrmProps) => import("react/jsx-runtime").JSX.Element; export default GroupInfoBodyCrm; //# sourceMappingURL=GroupInfoBodyCrm.d.ts.map