import type { AxiosInstance } from 'axios'; export type AccountMemberRole = 'OWNER' | 'ADMIN' | 'READ_WRITE' | 'READ_RUN' | 'READ_ONLY'; export type AccountMemberType = 'member' | 'invite'; export type AccountMemberStatus = 'ACTIVE' | 'PENDING' | 'EXPIRED'; export interface ActiveAccountMember { type: 'member'; accountId: string; userId: string; name: string | null; email: string; role: AccountMemberRole; status: 'ACTIVE'; createdAt: string; updatedAt: string; isSupportMembership: boolean; ssoEnabled: boolean; mfaEnabled: boolean; } export interface AccountInvite { type: 'invite'; id: string; accountId: string; email: string; role: Exclude; status: 'PENDING' | 'EXPIRED'; inviterEmail: string; createdAt: string; updatedAt: string; expiresAt: string; } export type AccountMember = ActiveAccountMember | AccountInvite; export interface AccountMembersResponse { members: AccountMember[]; length: number; nextId: string | null; } export interface AccountMembersListParams { search?: string; type?: AccountMemberType; role?: AccountMemberRole; status?: AccountMemberStatus; limit?: number; nextId?: string; } export type AccountMemberUpdateRole = Exclude; export interface AccountMemberUpdateRolePayload { role: AccountMemberUpdateRole; } declare class AccountMembers { api: AxiosInstance; constructor(api: AxiosInstance); getAll(params?: AccountMembersListParams): Promise>; updateRole(userId: string, role: AccountMemberUpdateRole): Promise>; delete(userId: string): Promise>; } export default AccountMembers;