import * as z from "zod";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export type WorkspaceMemberId = {
    /**
     * The ID of the workspace the workspace member belongs to.
     */
    workspaceId: string;
    /**
     * The ID of the workspace member.
     */
    workspaceMemberId: string;
};
/**
 * Whether the workspace member is suspended or not and what level of privileges they have inside the workspace. We do not delete workspace members so that you can successfully attribute past actions to suspended workspace members.
 */
export declare const AccessLevel: {
    readonly Admin: "admin";
    readonly Member: "member";
    readonly Suspended: "suspended";
};
/**
 * Whether the workspace member is suspended or not and what level of privileges they have inside the workspace. We do not delete workspace members so that you can successfully attribute past actions to suspended workspace members.
 */
export type AccessLevel = ClosedEnum<typeof AccessLevel>;
export type WorkspaceMember = {
    id: WorkspaceMemberId;
    /**
     * The first name of the user.
     */
    firstName: string;
    /**
     * The last name of the user.
     */
    lastName: string;
    /**
     * A URL to the user's avatar image.
     */
    avatarUrl: string | null;
    /**
     * The user's email address.
     */
    emailAddress: string;
    /**
     * When the workspace member was created.
     */
    createdAt: string;
    /**
     * Whether the workspace member is suspended or not and what level of privileges they have inside the workspace. We do not delete workspace members so that you can successfully attribute past actions to suspended workspace members.
     */
    accessLevel: AccessLevel;
};
/** @internal */
export declare const WorkspaceMemberId$inboundSchema: z.ZodType<WorkspaceMemberId, z.ZodTypeDef, unknown>;
/** @internal */
export type WorkspaceMemberId$Outbound = {
    workspace_id: string;
    workspace_member_id: string;
};
/** @internal */
export declare const WorkspaceMemberId$outboundSchema: z.ZodType<WorkspaceMemberId$Outbound, z.ZodTypeDef, WorkspaceMemberId>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace WorkspaceMemberId$ {
    /** @deprecated use `WorkspaceMemberId$inboundSchema` instead. */
    const inboundSchema: z.ZodType<WorkspaceMemberId, z.ZodTypeDef, unknown>;
    /** @deprecated use `WorkspaceMemberId$outboundSchema` instead. */
    const outboundSchema: z.ZodType<WorkspaceMemberId$Outbound, z.ZodTypeDef, WorkspaceMemberId>;
    /** @deprecated use `WorkspaceMemberId$Outbound` instead. */
    type Outbound = WorkspaceMemberId$Outbound;
}
export declare function workspaceMemberIdToJSON(workspaceMemberId: WorkspaceMemberId): string;
export declare function workspaceMemberIdFromJSON(jsonString: string): SafeParseResult<WorkspaceMemberId, SDKValidationError>;
/** @internal */
export declare const AccessLevel$inboundSchema: z.ZodNativeEnum<typeof AccessLevel>;
/** @internal */
export declare const AccessLevel$outboundSchema: z.ZodNativeEnum<typeof AccessLevel>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AccessLevel$ {
    /** @deprecated use `AccessLevel$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Admin: "admin";
        readonly Member: "member";
        readonly Suspended: "suspended";
    }>;
    /** @deprecated use `AccessLevel$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Admin: "admin";
        readonly Member: "member";
        readonly Suspended: "suspended";
    }>;
}
/** @internal */
export declare const WorkspaceMember$inboundSchema: z.ZodType<WorkspaceMember, z.ZodTypeDef, unknown>;
/** @internal */
export type WorkspaceMember$Outbound = {
    id: WorkspaceMemberId$Outbound;
    first_name: string;
    last_name: string;
    avatar_url: string | null;
    email_address: string;
    created_at: string;
    access_level: string;
};
/** @internal */
export declare const WorkspaceMember$outboundSchema: z.ZodType<WorkspaceMember$Outbound, z.ZodTypeDef, WorkspaceMember>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace WorkspaceMember$ {
    /** @deprecated use `WorkspaceMember$inboundSchema` instead. */
    const inboundSchema: z.ZodType<WorkspaceMember, z.ZodTypeDef, unknown>;
    /** @deprecated use `WorkspaceMember$outboundSchema` instead. */
    const outboundSchema: z.ZodType<WorkspaceMember$Outbound, z.ZodTypeDef, WorkspaceMember>;
    /** @deprecated use `WorkspaceMember$Outbound` instead. */
    type Outbound = WorkspaceMember$Outbound;
}
export declare function workspaceMemberToJSON(workspaceMember: WorkspaceMember): string;
export declare function workspaceMemberFromJSON(jsonString: string): SafeParseResult<WorkspaceMember, SDKValidationError>;
//# sourceMappingURL=workspacemember.d.ts.map