import * as z from "zod";
import { OpenEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export declare enum UpdateUserApiModel2 {
    True = "true",
    False = "false"
}
/**
 * Indicates if the user is a bot or service user
 */
export type UpdateUserApiModelIsBotUser = boolean | UpdateUserApiModel2;
export type UpdateUserApiModel4 = {};
export type UpdateUserApiModelSourceValue = UpdateUserApiModel4 | string | number | boolean | Array<any>;
/**
 * The status of the user, e.g. whether the user is enabled, has been disabled (eg. by an admin), or is pending (ie: awaiting approval by the user or an admin).
 */
export declare enum UpdateUserApiModelValue {
    Enabled = "enabled",
    Disabled = "disabled",
    Pending = "pending",
    UnmappedValue = "unmapped_value"
}
/**
 * The status of the user, e.g. whether the user is enabled, has been disabled (eg. by an admin), or is pending (ie: awaiting approval by the user or an admin).
 */
export type UpdateUserApiModelValueOpen = OpenEnum<typeof UpdateUserApiModelValue>;
export type UpdateUserApiModelStatus = {
    sourceValue?: UpdateUserApiModel4 | string | number | boolean | Array<any> | null | undefined;
    /**
     * The status of the user, e.g. whether the user is enabled, has been disabled (eg. by an admin), or is pending (ie: awaiting approval by the user or an admin).
     */
    value?: UpdateUserApiModelValueOpen | null | undefined;
};
export type UpdateUserApiModel = {
    firstName?: string | null | undefined;
    /**
     * Indicates if the user is a bot or service user
     */
    isBotUser?: boolean | UpdateUserApiModel2 | null | undefined;
    lastName?: string | null | undefined;
    /**
     * User's name which (can be a full name or display name)
     */
    name?: string | null | undefined;
    /**
     * Value to pass through to the provider
     */
    passthrough?: {
        [k: string]: any;
    } | null | undefined;
    /**
     * Primary email address of the user. This is generally a work email address.
     */
    primaryEmailAddress?: string | null | undefined;
    status?: UpdateUserApiModelStatus | null | undefined;
    username?: string | null | undefined;
};
/** @internal */
export declare const UpdateUserApiModel2$inboundSchema: z.ZodNativeEnum<typeof UpdateUserApiModel2>;
/** @internal */
export declare const UpdateUserApiModel2$outboundSchema: z.ZodNativeEnum<typeof UpdateUserApiModel2>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateUserApiModel2$ {
    /** @deprecated use `UpdateUserApiModel2$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<typeof UpdateUserApiModel2>;
    /** @deprecated use `UpdateUserApiModel2$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<typeof UpdateUserApiModel2>;
}
/** @internal */
export declare const UpdateUserApiModelIsBotUser$inboundSchema: z.ZodType<UpdateUserApiModelIsBotUser, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateUserApiModelIsBotUser$Outbound = boolean | string;
/** @internal */
export declare const UpdateUserApiModelIsBotUser$outboundSchema: z.ZodType<UpdateUserApiModelIsBotUser$Outbound, z.ZodTypeDef, UpdateUserApiModelIsBotUser>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateUserApiModelIsBotUser$ {
    /** @deprecated use `UpdateUserApiModelIsBotUser$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateUserApiModelIsBotUser, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateUserApiModelIsBotUser$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateUserApiModelIsBotUser$Outbound, z.ZodTypeDef, UpdateUserApiModelIsBotUser>;
    /** @deprecated use `UpdateUserApiModelIsBotUser$Outbound` instead. */
    type Outbound = UpdateUserApiModelIsBotUser$Outbound;
}
export declare function updateUserApiModelIsBotUserToJSON(updateUserApiModelIsBotUser: UpdateUserApiModelIsBotUser): string;
export declare function updateUserApiModelIsBotUserFromJSON(jsonString: string): SafeParseResult<UpdateUserApiModelIsBotUser, SDKValidationError>;
/** @internal */
export declare const UpdateUserApiModel4$inboundSchema: z.ZodType<UpdateUserApiModel4, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateUserApiModel4$Outbound = {};
/** @internal */
export declare const UpdateUserApiModel4$outboundSchema: z.ZodType<UpdateUserApiModel4$Outbound, z.ZodTypeDef, UpdateUserApiModel4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateUserApiModel4$ {
    /** @deprecated use `UpdateUserApiModel4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateUserApiModel4, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateUserApiModel4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateUserApiModel4$Outbound, z.ZodTypeDef, UpdateUserApiModel4>;
    /** @deprecated use `UpdateUserApiModel4$Outbound` instead. */
    type Outbound = UpdateUserApiModel4$Outbound;
}
export declare function updateUserApiModel4ToJSON(updateUserApiModel4: UpdateUserApiModel4): string;
export declare function updateUserApiModel4FromJSON(jsonString: string): SafeParseResult<UpdateUserApiModel4, SDKValidationError>;
/** @internal */
export declare const UpdateUserApiModelSourceValue$inboundSchema: z.ZodType<UpdateUserApiModelSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateUserApiModelSourceValue$Outbound = UpdateUserApiModel4$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const UpdateUserApiModelSourceValue$outboundSchema: z.ZodType<UpdateUserApiModelSourceValue$Outbound, z.ZodTypeDef, UpdateUserApiModelSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateUserApiModelSourceValue$ {
    /** @deprecated use `UpdateUserApiModelSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateUserApiModelSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateUserApiModelSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateUserApiModelSourceValue$Outbound, z.ZodTypeDef, UpdateUserApiModelSourceValue>;
    /** @deprecated use `UpdateUserApiModelSourceValue$Outbound` instead. */
    type Outbound = UpdateUserApiModelSourceValue$Outbound;
}
export declare function updateUserApiModelSourceValueToJSON(updateUserApiModelSourceValue: UpdateUserApiModelSourceValue): string;
export declare function updateUserApiModelSourceValueFromJSON(jsonString: string): SafeParseResult<UpdateUserApiModelSourceValue, SDKValidationError>;
/** @internal */
export declare const UpdateUserApiModelValue$inboundSchema: z.ZodType<UpdateUserApiModelValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const UpdateUserApiModelValue$outboundSchema: z.ZodType<UpdateUserApiModelValueOpen, z.ZodTypeDef, UpdateUserApiModelValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateUserApiModelValue$ {
    /** @deprecated use `UpdateUserApiModelValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateUserApiModelValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateUserApiModelValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateUserApiModelValueOpen, z.ZodTypeDef, UpdateUserApiModelValueOpen>;
}
/** @internal */
export declare const UpdateUserApiModelStatus$inboundSchema: z.ZodType<UpdateUserApiModelStatus, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateUserApiModelStatus$Outbound = {
    source_value?: UpdateUserApiModel4$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const UpdateUserApiModelStatus$outboundSchema: z.ZodType<UpdateUserApiModelStatus$Outbound, z.ZodTypeDef, UpdateUserApiModelStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateUserApiModelStatus$ {
    /** @deprecated use `UpdateUserApiModelStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateUserApiModelStatus, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateUserApiModelStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateUserApiModelStatus$Outbound, z.ZodTypeDef, UpdateUserApiModelStatus>;
    /** @deprecated use `UpdateUserApiModelStatus$Outbound` instead. */
    type Outbound = UpdateUserApiModelStatus$Outbound;
}
export declare function updateUserApiModelStatusToJSON(updateUserApiModelStatus: UpdateUserApiModelStatus): string;
export declare function updateUserApiModelStatusFromJSON(jsonString: string): SafeParseResult<UpdateUserApiModelStatus, SDKValidationError>;
/** @internal */
export declare const UpdateUserApiModel$inboundSchema: z.ZodType<UpdateUserApiModel, z.ZodTypeDef, unknown>;
/** @internal */
export type UpdateUserApiModel$Outbound = {
    first_name?: string | null | undefined;
    is_bot_user?: boolean | string | null | undefined;
    last_name?: string | null | undefined;
    name?: string | null | undefined;
    passthrough?: {
        [k: string]: any;
    } | null | undefined;
    primary_email_address?: string | null | undefined;
    status?: UpdateUserApiModelStatus$Outbound | null | undefined;
    username?: string | null | undefined;
};
/** @internal */
export declare const UpdateUserApiModel$outboundSchema: z.ZodType<UpdateUserApiModel$Outbound, z.ZodTypeDef, UpdateUserApiModel>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace UpdateUserApiModel$ {
    /** @deprecated use `UpdateUserApiModel$inboundSchema` instead. */
    const inboundSchema: z.ZodType<UpdateUserApiModel, z.ZodTypeDef, unknown>;
    /** @deprecated use `UpdateUserApiModel$outboundSchema` instead. */
    const outboundSchema: z.ZodType<UpdateUserApiModel$Outbound, z.ZodTypeDef, UpdateUserApiModel>;
    /** @deprecated use `UpdateUserApiModel$Outbound` instead. */
    type Outbound = UpdateUserApiModel$Outbound;
}
export declare function updateUserApiModelToJSON(updateUserApiModel: UpdateUserApiModel): string;
export declare function updateUserApiModelFromJSON(jsonString: string): SafeParseResult<UpdateUserApiModel, SDKValidationError>;
//# sourceMappingURL=updateuserapimodel.d.ts.map