import type { Attributes } from "./attributes";
import type { Invite } from "./invite";
import type { MembershipResource } from "./membership-resource";
import type { MembershipStatus } from "./membership-status";
import type { Metadata } from "./metadata";
import type { ResourceType } from "./resource-type";
/**
 * Membership
 *
 * A membership associates a user with a resource, memberships is defined by user, resource, resource type, and associated roles.
 */
export type Membership = {
    /**
     * ID of the membership.
     */
    id: string;
    /**
     * ID of the resource the membership is in.
     */
    resource_id: string;
    type: ResourceType;
    /**
     * User's roles.
     */
    roles: string[];
    /**
     * User's permissions.
     *
     * @deprecated: Permissions include only legacy permissions, please use roles instead. Member access is based on their roles within a given resource and the permissions these roles grant.
     */
    permissions: string[];
    /**
     * The timestamp of when the membership was created.
     */
    created_at: string;
    /**
     * The timestamp of when the membership was last updated.
     */
    updated_at: string;
    invite?: Invite;
    status: MembershipStatus;
    metadata?: Metadata;
    attributes?: Attributes;
    resource: MembershipResource;
};
//# sourceMappingURL=membership.d.ts.map