@cfxlabsinc/b2b-services
    Preparing search index...
    type TeamMemberRow = {
        assignableRoles: AssignableRole[];
        avatarUrl?: string;
        canChangeStatus: boolean;
        canRemove: boolean;
        email: string;
        enabled: boolean;
        name: string | null;
        role: string | null;
        roleAssignedAt: number | null;
        roleAssignedBy: string | null;
        userId: string;
    }
    Index
    assignableRoles: AssignableRole[]

    Roles the viewer may move this member to. Empty hides "Change role".

    avatarUrl?: string

    Their profile picture; initials show when absent or when it fails to load.

    canChangeStatus: boolean

    The viewer may enable or disable this member; never their own row.

    canRemove: boolean
    email: string
    enabled: boolean
    name: string | null
    role: string | null

    null when they hold no role, and so can reach nothing.

    roleAssignedAt: number | null

    Epoch seconds the role was last set; null when never recorded.

    roleAssignedBy: string | null

    Who last set the role; null when that was never recorded.

    userId: string