import * as _casl_ability from '@casl/ability'; import { z } from 'zod'; import { GroupMembers } from '../groups/index.js'; import { UserRole } from '../user/index.js'; import { Zone } from '../zones/index.js'; declare enum AccessType { public = "pb", private = "pr", private_and_public = "pr_pb" } declare const ACCESS_TYPES: AccessType[]; type Organization = { id: string; name: string; handle: string; members: Member[] | GroupMembers[]; zone?: Zone[]; accessType?: AccessType; }; type Member = { userId: string; role: UserRole; }; type CreateOrganizationInput = { name: string; handle: string; members: Member[] | GroupMembers[]; zone?: Zone[]; }; type UpdateOrganizationInput = { name: string; }; type AddMemberInput = { userId: string; role: UserRole; }; type UpdateMemberRoleInput = { userId: string; role: UserRole; }; type RemoveMembersInput = { userIds: string[]; }; declare const MemberDetailsSchema: z.ZodObject<{ userId: z.ZodString; fullName: z.ZodString; email: z.ZodString; profileImage: z.ZodNullable; avatar: z.ZodNullable; role: z.ZodString; }, z.core.$strip>; declare const MembersResponseSchema: z.ZodArray; avatar: z.ZodNullable; role: z.ZodString; }, z.core.$strip>>; type MemberDetails = z.infer; type GetMembersResponse = z.infer; declare const PermissionsResponseSchema: z.ZodArray; subject: z.ZodEnum<{ Organisation: "Organisation"; Member: "Member"; Project: "Project"; Task: "Task"; Comment: "Comment"; Document: "Document"; Folder: "Folder"; File: "File"; ProjectMember: "ProjectMember"; Role: "Role"; Permission: "Permission"; all: "all"; }>; conditions: z.ZodOptional>; }, z.core.$strip>>; type PermissionsResponse = z.infer; export { ACCESS_TYPES, AccessType, type AddMemberInput, type CreateOrganizationInput, type GetMembersResponse, type Member, type MemberDetails, MemberDetailsSchema, MembersResponseSchema, type Organization, type PermissionsResponse, PermissionsResponseSchema, type RemoveMembersInput, type UpdateMemberRoleInput, type UpdateOrganizationInput };