export type SuccessResponse = { success: boolean; }; export type PaginationQuery = { limit?: number; page?: number; sort?: string; asc?: 'asc' | 'desc'; }; export type PaginatedResponse = { list: TItem[]; total: number; page: number; limit: number; }; export type InternalUser = { id: string; nickname: string | null; code: string | null; email: string | null; mobile: string | null; avatarUrl: string | null; isAdmin: boolean; isActive: boolean; }; export type BatchUsersRequest = { userIds: string[]; }; export type BatchUsersResponse = Record; export type InternalTenant = { id: string; name: string; slug: string; type: string; plan: string; status: string; }; export type TenantFeeType = 'STANDARD' | 'PARTNER' | 'VIP' | 'STRATEGIC'; export type InternalTenantFeeType = { tenantId: string; feeType: TenantFeeType; tenantName?: string; }; export type OidcSessionInfo = { grantId?: string; clientId: string; scope?: string; accessExpire: number; authTime: number; }; export type MainSessionInfo = { accessExpire: number; expire: number; isAnonymity: boolean; }; export type UserSessionsResponse = { mainSession?: MainSessionInfo; oidcSessions: OidcSessionInfo[]; }; export type TeamMemberRole = 'OWNER' | 'ADMIN' | 'MEMBER'; export type TeamMemberStatus = 'ACTIVE' | 'INVITED' | 'SUSPENDED'; export type TenantMemberRole = 'OWNER' | 'ADMIN' | 'MEMBER'; export type TenantMemberStatus = 'ACTIVE' | 'INVITED' | 'SUSPENDED'; export type InternalTeam = { id: string; tenantId: string; slug: string; name: string; description: string | null; type: string; status: string; externalId: string | null; metadata: Record | null; createdAt: string | Date; updatedAt: string | Date; }; export type InternalTeamMember = { id: string; teamId: string; userId: string; userInfo: InternalUser; role: TeamMemberRole; status: TeamMemberStatus; createdAt: string | Date; }; export type UserTeam = { teamId: string; teamSlug: string; teamName: string; role: TeamMemberRole; tenantId: string; tenantSlug: string; tenantName: string; }; export type UserTenant = { tenantId: string; tenantSlug: string; tenantName: string; tenantDisplayName: string | null; role: TenantMemberRole; }; export type InternalListUserTeamsQuery = PaginationQuery; export type InternalListUserTeamsResponse = PaginatedResponse; export type CreateTeamRequest = { tenantId: string; slug: string; name: string; description?: string; type?: string; externalId?: string; metadata?: Record; }; export type UpdateTeamRequest = { name?: string; description?: string; type?: string; status?: string; metadata?: Record; }; export type AddTeamMemberRequest = { userId: string; role?: TeamMemberRole; }; export type UserPermission = { permissions: string[]; roles: string[]; }; export type CheckPermissionRequest = { userId: string; teamId?: string; tenantId?: string; permission: string; }; export type TeamListQuery = { tenantId?: string; userId?: string; status?: string; limit?: number; page?: number; }; export type InternalListTeamMembersQuery = PaginationQuery; export type InternalListTeamMembersResponse = PaginatedResponse; export type UpdateTeamMemberRoleRequest = { role: TeamMemberRole; /** Optional audit attribution accepted by the sso.dofe.ai internal endpoint. */ actorUserId?: string; reason?: string; }; export type TenantListQuery = { userId?: string; status?: string; limit?: number; page?: number; }; export type CreateTenantRequest = { slug: string; name: string; displayName?: string; type?: string; }; export type UpdateTenantRequest = { actorUserId: string; name?: string; displayName?: string; description?: string; logoFileId?: string | null; }; export type DeleteTenantRequest = { actorUserId: string; }; export type InternalTenantMember = { id: string; tenantId: string; userId: string; userInfo: InternalUser; role: TenantMemberRole; status: TenantMemberStatus; createdAt: string | Date; }; export type InternalListTenantMembersQuery = PaginationQuery; export type InternalListTenantMembersResponse = PaginatedResponse; export type UpdateTenantMemberRoleRequest = { role: TenantMemberRole; /** Optional audit attribution accepted by the sso.dofe.ai internal endpoint. */ actorUserId?: string; reason?: string; }; export type AddTenantMemberRequest = { userId: string; role?: TenantMemberRole; }; export type TenantInvitationStatus = 'PENDING' | 'ACCEPTED' | 'REJECTED' | 'EXPIRED'; export type InternalTenantInvitation = { id: string; tenantId: string; email: string; role: TenantMemberRole; status: TenantInvitationStatus; code: string; invitedById: string; invitedByInfo: InternalUser | null; expiresAt: string | Date; createdAt: string | Date; }; export type InternalListTenantInvitationsQuery = PaginationQuery & { role?: TenantMemberRole; status?: TenantInvitationStatus; }; export type InternalListTenantInvitationsResponse = PaginatedResponse; export type CreateTenantInvitationRequest = { email: string; role?: TenantMemberRole; }; export type RespondToInvitationRequest = { accept: boolean; }; export type UserTenantPreference = { userId: string; lastTenantId: string | null; tenantOrder?: string[]; updatedAt: string | Date; }; export type UpdateUserTenantPreferenceRequest = { lastTenantId?: string | null; tenantOrder?: string[]; }; export type OutboxAlertDeliveryTarget = { target: string; attempted: boolean; delivered: boolean; error?: string; }; export type OutboxAlertDeliveryResult = { enabled: boolean; attempted: boolean; delivered: boolean; suppressed: boolean; targets: OutboxAlertDeliveryTarget[]; error?: string; }; export type OutboxStatus = { statusCounts: Record; pendingAlerts: string[]; oldestPendingAt: string | null; oldestFailedAt: string | null; alertDelivery: OutboxAlertDeliveryResult; }; //# sourceMappingURL=types.d.ts.map