import { J as Json, S as SdkModule } from '../../module-Bq-w9Ws5.js'; import 'graphql-request'; type GroupType = 'TEAM' | 'SECURITY_GROUP' | 'RESOURCE_COLLECTION' | 'AUDIENCE' | 'CHANNEL_GROUP' | 'BETA_PROGRAM' | 'DYNAMIC_AUDIENCE' | 'FEATURE_FLAG_GROUP' | 'PROJECT_GROUP' | 'CUSTOM'; type GroupVisibility = 'PRIVATE' | 'INTERNAL' | 'PUBLIC_LINK' | 'DIRECTORY_LISTED'; type GroupScope = 'GLOBAL' | 'TENANT' | 'WORKSPACE' | 'PRIVATE'; type GroupStatus = 'DRAFT' | 'ACTIVE' | 'FROZEN' | 'ARCHIVED' | 'DELETED' | 'SUSPENDED'; type GroupCompositionMode = 'HOMOGENEOUS' | 'HETEROGENEOUS'; type MembershipType = 'STATIC' | 'DYNAMIC' | 'HYBRID'; type MembershipRole = 'OWNER' | 'ADMIN' | 'MODERATOR' | 'MEMBER' | 'OBSERVER' | 'GUEST' | 'BOT'; type MembershipSource = 'MANUAL' | 'INVITED' | 'RULE_BASED' | 'INHERITED' | 'MIGRATED'; type InvitationStatus = 'PENDING' | 'ACCEPTED' | 'DECLINED' | 'EXPIRED' | 'CANCELLED'; interface PageInfo { hasNextPage: boolean; hasPreviousPage: boolean; startCursor?: string | null; endCursor?: string | null; } interface Group { id: string; name: string; slug: string; description?: string | null; icon?: string | null; color?: string | null; groupType: GroupType; visibility: GroupVisibility; scope: GroupScope; status: GroupStatus; isSystemGroup: boolean; workspaceId: string; createdBy: string; ownerId: string; membershipType: MembershipType; memberCount: number; metadata?: Json; tags?: Json; createdAt: string; updatedAt: string; archivedAt?: string | null; deletedAt?: string | null; } interface GroupMembership { id: string; entityType: string; entityId: string; membershipType: MembershipType; role: MembershipRole; source: MembershipSource; invitedBy?: string | null; invitationStatus?: InvitationStatus | null; invitedAt?: string | null; joinedAt?: string | null; expiresAt?: string | null; metadata?: Json; createdAt: string; updatedAt: string; } interface GroupMembershipEdge { node: GroupMembership; cursor: string; } interface MembershipConnection { edges: GroupMembershipEdge[]; pageInfo: PageInfo; totalCount: number; } interface GroupEdge { node: Group; cursor: string; } interface GroupConnection { edges: GroupEdge[]; pageInfo: PageInfo; totalCount: number; } interface GroupAuditLog { id: string; groupId: string; eventType: string; description: string; actorType: string; actorId: string; changes?: Json; metadata?: Json; ipAddress?: string | null; userAgent?: string | null; createdAt: string; } interface GroupFilter { groupType?: GroupType; visibility?: GroupVisibility; status?: GroupStatus; scope?: GroupScope; searchText?: string; memberEntityId?: string; } interface CreateGroupInput { name: string; groupType: GroupType; slug?: string; description?: string; icon?: string; color?: string; visibility?: GroupVisibility; scope?: GroupScope; membershipType?: MembershipType; metadata?: Json; tags?: Json; } interface UpdateGroupInput { name?: string; description?: string; icon?: string; color?: string; visibility?: GroupVisibility; status?: GroupStatus; membershipType?: MembershipType; metadata?: Json; tags?: Json; } interface AddMemberInput { email?: string; entityId?: string; entityType?: string; role?: MembershipRole; expiresAt?: string; } interface AddMembersResult { added: GroupMembership[]; failed: Array<{ entityId: string; entityType: string; error: string; }>; successCount: number; failedCount: number; } interface RemoveMembersResult { removed: string[]; failed: string[]; successCount: number; failedCount: number; } interface GroupsMembersApi { list(groupId: string, first?: number, after?: string): Promise; add(groupId: string, members: AddMemberInput[]): Promise; remove(groupId: string, membershipIds: string[]): Promise; } interface GroupsApi { list(first?: number, after?: string, filter?: GroupFilter): Promise; get(id: string): Promise; create(input: CreateGroupInput): Promise; update(id: string, input: UpdateGroupInput): Promise; delete(id: string): Promise; members: GroupsMembersApi; hierarchy(id: string): Promise<{ group: Group; parentGroups: Group[]; childGroups: Group[]; } | null>; activity(id: string, first?: number, after?: string): Promise; } declare const groupsModule: SdkModule; export { type AddMemberInput, type AddMembersResult, type CreateGroupInput, type Group, type GroupAuditLog, type GroupCompositionMode, type GroupConnection, type GroupEdge, type GroupFilter, type GroupMembership, type GroupMembershipEdge, type GroupScope, type GroupStatus, type GroupType, type GroupVisibility, type GroupsApi, type GroupsMembersApi, type InvitationStatus, type MembershipConnection, type MembershipRole, type MembershipSource, type MembershipType, type PageInfo, type RemoveMembersResult, type UpdateGroupInput, groupsModule as default };