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 IamUpdateUserRequestDto2 {
    True = "true",
    False = "false"
}
/**
 * Indicates if the user is a bot or service user
 */
export type IsBotUser = boolean | IamUpdateUserRequestDto2;
export type IamUpdateUserRequestDto4 = {};
export type IamUpdateUserRequestDtoSourceValue = IamUpdateUserRequestDto4 | 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 IamUpdateUserRequestDtoValue {
    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 IamUpdateUserRequestDtoValueOpen = OpenEnum<typeof IamUpdateUserRequestDtoValue>;
export type IamUpdateUserRequestDtoStatus = {
    sourceValue?: IamUpdateUserRequestDto4 | 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?: IamUpdateUserRequestDtoValueOpen | null | undefined;
};
export type IamUpdateUserRequestDto = {
    firstName?: string | null | undefined;
    /**
     * Indicates if the user is a bot or service user
     */
    isBotUser?: boolean | IamUpdateUserRequestDto2 | 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?: IamUpdateUserRequestDtoStatus | null | undefined;
    username?: string | null | undefined;
};
/** @internal */
export declare const IamUpdateUserRequestDto2$inboundSchema: z.ZodNativeEnum<typeof IamUpdateUserRequestDto2>;
/** @internal */
export declare const IamUpdateUserRequestDto2$outboundSchema: z.ZodNativeEnum<typeof IamUpdateUserRequestDto2>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace IamUpdateUserRequestDto2$ {
    /** @deprecated use `IamUpdateUserRequestDto2$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<typeof IamUpdateUserRequestDto2>;
    /** @deprecated use `IamUpdateUserRequestDto2$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<typeof IamUpdateUserRequestDto2>;
}
/** @internal */
export declare const IsBotUser$inboundSchema: z.ZodType<IsBotUser, z.ZodTypeDef, unknown>;
/** @internal */
export type IsBotUser$Outbound = boolean | string;
/** @internal */
export declare const IsBotUser$outboundSchema: z.ZodType<IsBotUser$Outbound, z.ZodTypeDef, IsBotUser>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace IsBotUser$ {
    /** @deprecated use `IsBotUser$inboundSchema` instead. */
    const inboundSchema: z.ZodType<IsBotUser, z.ZodTypeDef, unknown>;
    /** @deprecated use `IsBotUser$outboundSchema` instead. */
    const outboundSchema: z.ZodType<IsBotUser$Outbound, z.ZodTypeDef, IsBotUser>;
    /** @deprecated use `IsBotUser$Outbound` instead. */
    type Outbound = IsBotUser$Outbound;
}
export declare function isBotUserToJSON(isBotUser: IsBotUser): string;
export declare function isBotUserFromJSON(jsonString: string): SafeParseResult<IsBotUser, SDKValidationError>;
/** @internal */
export declare const IamUpdateUserRequestDto4$inboundSchema: z.ZodType<IamUpdateUserRequestDto4, z.ZodTypeDef, unknown>;
/** @internal */
export type IamUpdateUserRequestDto4$Outbound = {};
/** @internal */
export declare const IamUpdateUserRequestDto4$outboundSchema: z.ZodType<IamUpdateUserRequestDto4$Outbound, z.ZodTypeDef, IamUpdateUserRequestDto4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace IamUpdateUserRequestDto4$ {
    /** @deprecated use `IamUpdateUserRequestDto4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<IamUpdateUserRequestDto4, z.ZodTypeDef, unknown>;
    /** @deprecated use `IamUpdateUserRequestDto4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<IamUpdateUserRequestDto4$Outbound, z.ZodTypeDef, IamUpdateUserRequestDto4>;
    /** @deprecated use `IamUpdateUserRequestDto4$Outbound` instead. */
    type Outbound = IamUpdateUserRequestDto4$Outbound;
}
export declare function iamUpdateUserRequestDto4ToJSON(iamUpdateUserRequestDto4: IamUpdateUserRequestDto4): string;
export declare function iamUpdateUserRequestDto4FromJSON(jsonString: string): SafeParseResult<IamUpdateUserRequestDto4, SDKValidationError>;
/** @internal */
export declare const IamUpdateUserRequestDtoSourceValue$inboundSchema: z.ZodType<IamUpdateUserRequestDtoSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type IamUpdateUserRequestDtoSourceValue$Outbound = IamUpdateUserRequestDto4$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const IamUpdateUserRequestDtoSourceValue$outboundSchema: z.ZodType<IamUpdateUserRequestDtoSourceValue$Outbound, z.ZodTypeDef, IamUpdateUserRequestDtoSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace IamUpdateUserRequestDtoSourceValue$ {
    /** @deprecated use `IamUpdateUserRequestDtoSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<IamUpdateUserRequestDtoSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `IamUpdateUserRequestDtoSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<IamUpdateUserRequestDtoSourceValue$Outbound, z.ZodTypeDef, IamUpdateUserRequestDtoSourceValue>;
    /** @deprecated use `IamUpdateUserRequestDtoSourceValue$Outbound` instead. */
    type Outbound = IamUpdateUserRequestDtoSourceValue$Outbound;
}
export declare function iamUpdateUserRequestDtoSourceValueToJSON(iamUpdateUserRequestDtoSourceValue: IamUpdateUserRequestDtoSourceValue): string;
export declare function iamUpdateUserRequestDtoSourceValueFromJSON(jsonString: string): SafeParseResult<IamUpdateUserRequestDtoSourceValue, SDKValidationError>;
/** @internal */
export declare const IamUpdateUserRequestDtoValue$inboundSchema: z.ZodType<IamUpdateUserRequestDtoValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const IamUpdateUserRequestDtoValue$outboundSchema: z.ZodType<IamUpdateUserRequestDtoValueOpen, z.ZodTypeDef, IamUpdateUserRequestDtoValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace IamUpdateUserRequestDtoValue$ {
    /** @deprecated use `IamUpdateUserRequestDtoValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<IamUpdateUserRequestDtoValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `IamUpdateUserRequestDtoValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<IamUpdateUserRequestDtoValueOpen, z.ZodTypeDef, IamUpdateUserRequestDtoValueOpen>;
}
/** @internal */
export declare const IamUpdateUserRequestDtoStatus$inboundSchema: z.ZodType<IamUpdateUserRequestDtoStatus, z.ZodTypeDef, unknown>;
/** @internal */
export type IamUpdateUserRequestDtoStatus$Outbound = {
    source_value?: IamUpdateUserRequestDto4$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const IamUpdateUserRequestDtoStatus$outboundSchema: z.ZodType<IamUpdateUserRequestDtoStatus$Outbound, z.ZodTypeDef, IamUpdateUserRequestDtoStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace IamUpdateUserRequestDtoStatus$ {
    /** @deprecated use `IamUpdateUserRequestDtoStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodType<IamUpdateUserRequestDtoStatus, z.ZodTypeDef, unknown>;
    /** @deprecated use `IamUpdateUserRequestDtoStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodType<IamUpdateUserRequestDtoStatus$Outbound, z.ZodTypeDef, IamUpdateUserRequestDtoStatus>;
    /** @deprecated use `IamUpdateUserRequestDtoStatus$Outbound` instead. */
    type Outbound = IamUpdateUserRequestDtoStatus$Outbound;
}
export declare function iamUpdateUserRequestDtoStatusToJSON(iamUpdateUserRequestDtoStatus: IamUpdateUserRequestDtoStatus): string;
export declare function iamUpdateUserRequestDtoStatusFromJSON(jsonString: string): SafeParseResult<IamUpdateUserRequestDtoStatus, SDKValidationError>;
/** @internal */
export declare const IamUpdateUserRequestDto$inboundSchema: z.ZodType<IamUpdateUserRequestDto, z.ZodTypeDef, unknown>;
/** @internal */
export type IamUpdateUserRequestDto$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?: IamUpdateUserRequestDtoStatus$Outbound | null | undefined;
    username?: string | null | undefined;
};
/** @internal */
export declare const IamUpdateUserRequestDto$outboundSchema: z.ZodType<IamUpdateUserRequestDto$Outbound, z.ZodTypeDef, IamUpdateUserRequestDto>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace IamUpdateUserRequestDto$ {
    /** @deprecated use `IamUpdateUserRequestDto$inboundSchema` instead. */
    const inboundSchema: z.ZodType<IamUpdateUserRequestDto, z.ZodTypeDef, unknown>;
    /** @deprecated use `IamUpdateUserRequestDto$outboundSchema` instead. */
    const outboundSchema: z.ZodType<IamUpdateUserRequestDto$Outbound, z.ZodTypeDef, IamUpdateUserRequestDto>;
    /** @deprecated use `IamUpdateUserRequestDto$Outbound` instead. */
    type Outbound = IamUpdateUserRequestDto$Outbound;
}
export declare function iamUpdateUserRequestDtoToJSON(iamUpdateUserRequestDto: IamUpdateUserRequestDto): string;
export declare function iamUpdateUserRequestDtoFromJSON(jsonString: string): SafeParseResult<IamUpdateUserRequestDto, SDKValidationError>;
//# sourceMappingURL=iamupdateuserrequestdto.d.ts.map