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 type IamMfaTypeEnum4 = {};
export type IamMfaTypeEnumSourceValue = IamMfaTypeEnum4 | string | number | boolean | Array<any>;
/**
 * The unified value for the type of multi-factor authentication. If the provider does not send back a type but does specify that MFA is set-up for this user, the value will be set to 'unknown'.'
 */
export declare enum IamMfaTypeEnumValue {
    Sms = "sms",
    Email = "email",
    Push = "push",
    Totp = "totp",
    PhoneCall = "phone_call",
    Question = "question",
    SoftwareToken = "software_token",
    HardwareToken = "hardware_token",
    Web = "web",
    Unknown = "unknown",
    UnmappedValue = "unmapped_value"
}
/**
 * The unified value for the type of multi-factor authentication. If the provider does not send back a type but does specify that MFA is set-up for this user, the value will be set to 'unknown'.'
 */
export type IamMfaTypeEnumValueOpen = OpenEnum<typeof IamMfaTypeEnumValue>;
export type IamMfaTypeEnum = {
    sourceValue?: IamMfaTypeEnum4 | string | number | boolean | Array<any> | null | undefined;
    /**
     * The unified value for the type of multi-factor authentication. If the provider does not send back a type but does specify that MFA is set-up for this user, the value will be set to 'unknown'.'
     */
    value?: IamMfaTypeEnumValueOpen | null | undefined;
};
/** @internal */
export declare const IamMfaTypeEnum4$inboundSchema: z.ZodType<IamMfaTypeEnum4, z.ZodTypeDef, unknown>;
/** @internal */
export type IamMfaTypeEnum4$Outbound = {};
/** @internal */
export declare const IamMfaTypeEnum4$outboundSchema: z.ZodType<IamMfaTypeEnum4$Outbound, z.ZodTypeDef, IamMfaTypeEnum4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace IamMfaTypeEnum4$ {
    /** @deprecated use `IamMfaTypeEnum4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<IamMfaTypeEnum4, z.ZodTypeDef, unknown>;
    /** @deprecated use `IamMfaTypeEnum4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<IamMfaTypeEnum4$Outbound, z.ZodTypeDef, IamMfaTypeEnum4>;
    /** @deprecated use `IamMfaTypeEnum4$Outbound` instead. */
    type Outbound = IamMfaTypeEnum4$Outbound;
}
export declare function iamMfaTypeEnum4ToJSON(iamMfaTypeEnum4: IamMfaTypeEnum4): string;
export declare function iamMfaTypeEnum4FromJSON(jsonString: string): SafeParseResult<IamMfaTypeEnum4, SDKValidationError>;
/** @internal */
export declare const IamMfaTypeEnumSourceValue$inboundSchema: z.ZodType<IamMfaTypeEnumSourceValue, z.ZodTypeDef, unknown>;
/** @internal */
export type IamMfaTypeEnumSourceValue$Outbound = IamMfaTypeEnum4$Outbound | string | number | boolean | Array<any>;
/** @internal */
export declare const IamMfaTypeEnumSourceValue$outboundSchema: z.ZodType<IamMfaTypeEnumSourceValue$Outbound, z.ZodTypeDef, IamMfaTypeEnumSourceValue>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace IamMfaTypeEnumSourceValue$ {
    /** @deprecated use `IamMfaTypeEnumSourceValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<IamMfaTypeEnumSourceValue, z.ZodTypeDef, unknown>;
    /** @deprecated use `IamMfaTypeEnumSourceValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<IamMfaTypeEnumSourceValue$Outbound, z.ZodTypeDef, IamMfaTypeEnumSourceValue>;
    /** @deprecated use `IamMfaTypeEnumSourceValue$Outbound` instead. */
    type Outbound = IamMfaTypeEnumSourceValue$Outbound;
}
export declare function iamMfaTypeEnumSourceValueToJSON(iamMfaTypeEnumSourceValue: IamMfaTypeEnumSourceValue): string;
export declare function iamMfaTypeEnumSourceValueFromJSON(jsonString: string): SafeParseResult<IamMfaTypeEnumSourceValue, SDKValidationError>;
/** @internal */
export declare const IamMfaTypeEnumValue$inboundSchema: z.ZodType<IamMfaTypeEnumValueOpen, z.ZodTypeDef, unknown>;
/** @internal */
export declare const IamMfaTypeEnumValue$outboundSchema: z.ZodType<IamMfaTypeEnumValueOpen, z.ZodTypeDef, IamMfaTypeEnumValueOpen>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace IamMfaTypeEnumValue$ {
    /** @deprecated use `IamMfaTypeEnumValue$inboundSchema` instead. */
    const inboundSchema: z.ZodType<IamMfaTypeEnumValueOpen, z.ZodTypeDef, unknown>;
    /** @deprecated use `IamMfaTypeEnumValue$outboundSchema` instead. */
    const outboundSchema: z.ZodType<IamMfaTypeEnumValueOpen, z.ZodTypeDef, IamMfaTypeEnumValueOpen>;
}
/** @internal */
export declare const IamMfaTypeEnum$inboundSchema: z.ZodType<IamMfaTypeEnum, z.ZodTypeDef, unknown>;
/** @internal */
export type IamMfaTypeEnum$Outbound = {
    source_value?: IamMfaTypeEnum4$Outbound | string | number | boolean | Array<any> | null | undefined;
    value?: string | null | undefined;
};
/** @internal */
export declare const IamMfaTypeEnum$outboundSchema: z.ZodType<IamMfaTypeEnum$Outbound, z.ZodTypeDef, IamMfaTypeEnum>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace IamMfaTypeEnum$ {
    /** @deprecated use `IamMfaTypeEnum$inboundSchema` instead. */
    const inboundSchema: z.ZodType<IamMfaTypeEnum, z.ZodTypeDef, unknown>;
    /** @deprecated use `IamMfaTypeEnum$outboundSchema` instead. */
    const outboundSchema: z.ZodType<IamMfaTypeEnum$Outbound, z.ZodTypeDef, IamMfaTypeEnum>;
    /** @deprecated use `IamMfaTypeEnum$Outbound` instead. */
    type Outbound = IamMfaTypeEnum$Outbound;
}
export declare function iamMfaTypeEnumToJSON(iamMfaTypeEnum: IamMfaTypeEnum): string;
export declare function iamMfaTypeEnumFromJSON(jsonString: string): SafeParseResult<IamMfaTypeEnum, SDKValidationError>;
//# sourceMappingURL=iammfatypeenum.d.ts.map