import { UserRole } from "../enums/SDKUserRole";
import { WorkspaceSeatType } from "../enums/SDKWorkspaceSeatType";
import { User, UserRemoteModel } from "./SDKUser";
export type UserMembershipRemoteModel = {
    user: UserRemoteModel;
    role: UserRole;
    effectiveRole: UserRole;
    seatType: WorkspaceSeatType;
    effectiveSeatType: WorkspaceSeatType;
    isDeactivated: boolean;
};
export declare class UserMembership {
    /** Full user object */
    user: User;
    /** Role of the user in the workspace */
    role: UserRole;
    /**
     * Effective role of the user in the workspace, which can be different from the regular role
     * e.g., when the workspace is downgraded.
     */
    effectiveRole: UserRole;
    /** Seat of the user in the workspace. */
    seatType: WorkspaceSeatType;
    /**
     * Effective seat of the user in the workspace, which can be different from the regular seat
     * e.g., when the workspace is downgraded.
     */
    effectiveSeatType: WorkspaceSeatType;
    /** Whether the user is deactivated and can no longer access the workspace. */
    isDeactivated: boolean;
    constructor(model: UserMembershipRemoteModel);
    /** Constructs representation that can be used to write full object to remote */
    toRemote(): UserMembershipRemoteModel;
}
