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";
/**
 * The grant type. This value must be set to "authorization_code".
 */
export declare const PublicAuthCodeGrantRequestBodyGrantType: {
    readonly AuthorizationCode: "authorization_code";
};
/**
 * The grant type. This value must be set to "authorization_code".
 */
export type PublicAuthCodeGrantRequestBodyGrantType = ClosedEnum<typeof PublicAuthCodeGrantRequestBodyGrantType>;
/**
 * This grant uses Proof Key for Code Exchange (PKCE) to authenticate securely without requiring a client secret.
 */
export type PublicAuthCodeGrantRequestBody = {
    /**
     * The grant type. This value must be set to "authorization_code".
     */
    grantType?: PublicAuthCodeGrantRequestBodyGrantType | undefined;
    /**
     * The client ID of the application.
     */
    clientId: string;
    /**
     * The authorization code supplied to the callback.
     */
    code: string;
    /**
     * The code verifier used to authenticate the request. This value is generated by the client and must be included in the request.
     */
    codeVerifier: string;
};
/** @internal */
export declare const PublicAuthCodeGrantRequestBodyGrantType$inboundSchema: z.ZodNativeEnum<typeof PublicAuthCodeGrantRequestBodyGrantType>;
/** @internal */
export declare const PublicAuthCodeGrantRequestBodyGrantType$outboundSchema: z.ZodNativeEnum<typeof PublicAuthCodeGrantRequestBodyGrantType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PublicAuthCodeGrantRequestBodyGrantType$ {
    /** @deprecated use `PublicAuthCodeGrantRequestBodyGrantType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly AuthorizationCode: "authorization_code";
    }>;
    /** @deprecated use `PublicAuthCodeGrantRequestBodyGrantType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly AuthorizationCode: "authorization_code";
    }>;
}
/** @internal */
export declare const PublicAuthCodeGrantRequestBody$inboundSchema: z.ZodType<PublicAuthCodeGrantRequestBody, z.ZodTypeDef, unknown>;
/** @internal */
export type PublicAuthCodeGrantRequestBody$Outbound = {
    grant_type: string;
    client_id: string;
    code: string;
    code_verifier: string;
};
/** @internal */
export declare const PublicAuthCodeGrantRequestBody$outboundSchema: z.ZodType<PublicAuthCodeGrantRequestBody$Outbound, z.ZodTypeDef, PublicAuthCodeGrantRequestBody>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace PublicAuthCodeGrantRequestBody$ {
    /** @deprecated use `PublicAuthCodeGrantRequestBody$inboundSchema` instead. */
    const inboundSchema: z.ZodType<PublicAuthCodeGrantRequestBody, z.ZodTypeDef, unknown>;
    /** @deprecated use `PublicAuthCodeGrantRequestBody$outboundSchema` instead. */
    const outboundSchema: z.ZodType<PublicAuthCodeGrantRequestBody$Outbound, z.ZodTypeDef, PublicAuthCodeGrantRequestBody>;
    /** @deprecated use `PublicAuthCodeGrantRequestBody$Outbound` instead. */
    type Outbound = PublicAuthCodeGrantRequestBody$Outbound;
}
export declare function publicAuthCodeGrantRequestBodyToJSON(publicAuthCodeGrantRequestBody: PublicAuthCodeGrantRequestBody): string;
export declare function publicAuthCodeGrantRequestBodyFromJSON(jsonString: string): SafeParseResult<PublicAuthCodeGrantRequestBody, SDKValidationError>;
//# sourceMappingURL=publicauthcodegrantrequestbody.d.ts.map