import * as z from "zod";
import { ClosedEnum } from "../types/enums.js";
import { Result as SafeParseResult } from "../types/fp.js";
import { SDKValidationError } from "./sdkvalidationerror.js";
/**
 * When true, the response will only include the nameservers assigned directly to the specified domain. When false and there are no nameservers assigned directly to the specified domain, the response will include the nameservers of the domain's parent zone.
 */
export declare const Strict: {
    readonly True: "true";
    readonly False: "false";
};
/**
 * When true, the response will only include the nameservers assigned directly to the specified domain. When false and there are no nameservers assigned directly to the specified domain, the response will include the nameservers of the domain's parent zone.
 */
export type Strict = ClosedEnum<typeof Strict>;
export type GetDomainConfigRequest = {
    /**
     * The name of the domain.
     */
    domain: string;
    /**
     * The project id or name that will be associated with the domain. Use this when the domain is not yet associated with a project.
     */
    projectIdOrName?: string | undefined;
    /**
     * When true, the response will only include the nameservers assigned directly to the specified domain. When false and there are no nameservers assigned directly to the specified domain, the response will include the nameservers of the domain's parent zone.
     */
    strict?: Strict | undefined;
    /**
     * The Team identifier to perform the request on behalf of.
     */
    teamId?: string | undefined;
    /**
     * The Team slug to perform the request on behalf of.
     */
    slug?: string | undefined;
};
/**
 * How we see the domain's configuration. - `CNAME`: Domain has a CNAME pointing to Vercel. - `A`: Domain's A record is resolving to Vercel. - `http`: Domain is resolving to Vercel but may be behind a Proxy. - `dns-01`: Domain is not resolving to Vercel but dns-01 challenge is enabled. - `null`: Domain is not resolving to Vercel.
 */
export declare const ConfiguredBy: {
    readonly Cname: "CNAME";
    readonly A: "A";
    readonly Http: "http";
    readonly Dns01: "dns-01";
};
/**
 * How we see the domain's configuration. - `CNAME`: Domain has a CNAME pointing to Vercel. - `A`: Domain's A record is resolving to Vercel. - `http`: Domain is resolving to Vercel but may be behind a Proxy. - `dns-01`: Domain is not resolving to Vercel but dns-01 challenge is enabled. - `null`: Domain is not resolving to Vercel.
 */
export type ConfiguredBy = ClosedEnum<typeof ConfiguredBy>;
/**
 * Which challenge types the domain can use for issuing certs.
 */
export declare const AcceptedChallenges: {
    readonly Dns01: "dns-01";
    readonly Http01: "http-01";
};
/**
 * Which challenge types the domain can use for issuing certs.
 */
export type AcceptedChallenges = ClosedEnum<typeof AcceptedChallenges>;
/**
 * Recommended IPv4s for the domain. rank=1 is the preferred value(s) to use. Only using 1 ip value is acceptable.
 */
export type RecommendedIPv4 = {};
/**
 * Recommended CNAMEs for the domain. rank=1 is the preferred value to use.
 */
export type RecommendedCNAME = {};
export type GetDomainConfigResponseBody = {
    /**
     * How we see the domain's configuration. - `CNAME`: Domain has a CNAME pointing to Vercel. - `A`: Domain's A record is resolving to Vercel. - `http`: Domain is resolving to Vercel but may be behind a Proxy. - `dns-01`: Domain is not resolving to Vercel but dns-01 challenge is enabled. - `null`: Domain is not resolving to Vercel.
     */
    configuredBy?: ConfiguredBy | null | undefined;
    /**
     * Which challenge types the domain can use for issuing certs.
     */
    acceptedChallenges?: Array<AcceptedChallenges> | undefined;
    /**
     * Recommended IPv4s for the domain. rank=1 is the preferred value(s) to use. Only using 1 ip value is acceptable.
     */
    recommendedIPv4?: Array<RecommendedIPv4> | undefined;
    /**
     * Recommended CNAMEs for the domain. rank=1 is the preferred value to use.
     */
    recommendedCNAME?: Array<RecommendedCNAME> | undefined;
    /**
     * Whether or not the domain is configured AND we can automatically generate a TLS certificate.
     */
    misconfigured: boolean;
};
/** @internal */
export declare const Strict$inboundSchema: z.ZodNativeEnum<typeof Strict>;
/** @internal */
export declare const Strict$outboundSchema: z.ZodNativeEnum<typeof Strict>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Strict$ {
    /** @deprecated use `Strict$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly True: "true";
        readonly False: "false";
    }>;
    /** @deprecated use `Strict$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly True: "true";
        readonly False: "false";
    }>;
}
/** @internal */
export declare const GetDomainConfigRequest$inboundSchema: z.ZodType<GetDomainConfigRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type GetDomainConfigRequest$Outbound = {
    domain: string;
    projectIdOrName?: string | undefined;
    strict?: string | undefined;
    teamId?: string | undefined;
    slug?: string | undefined;
};
/** @internal */
export declare const GetDomainConfigRequest$outboundSchema: z.ZodType<GetDomainConfigRequest$Outbound, z.ZodTypeDef, GetDomainConfigRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetDomainConfigRequest$ {
    /** @deprecated use `GetDomainConfigRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetDomainConfigRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetDomainConfigRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetDomainConfigRequest$Outbound, z.ZodTypeDef, GetDomainConfigRequest>;
    /** @deprecated use `GetDomainConfigRequest$Outbound` instead. */
    type Outbound = GetDomainConfigRequest$Outbound;
}
export declare function getDomainConfigRequestToJSON(getDomainConfigRequest: GetDomainConfigRequest): string;
export declare function getDomainConfigRequestFromJSON(jsonString: string): SafeParseResult<GetDomainConfigRequest, SDKValidationError>;
/** @internal */
export declare const ConfiguredBy$inboundSchema: z.ZodNativeEnum<typeof ConfiguredBy>;
/** @internal */
export declare const ConfiguredBy$outboundSchema: z.ZodNativeEnum<typeof ConfiguredBy>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ConfiguredBy$ {
    /** @deprecated use `ConfiguredBy$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Cname: "CNAME";
        readonly A: "A";
        readonly Http: "http";
        readonly Dns01: "dns-01";
    }>;
    /** @deprecated use `ConfiguredBy$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Cname: "CNAME";
        readonly A: "A";
        readonly Http: "http";
        readonly Dns01: "dns-01";
    }>;
}
/** @internal */
export declare const AcceptedChallenges$inboundSchema: z.ZodNativeEnum<typeof AcceptedChallenges>;
/** @internal */
export declare const AcceptedChallenges$outboundSchema: z.ZodNativeEnum<typeof AcceptedChallenges>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AcceptedChallenges$ {
    /** @deprecated use `AcceptedChallenges$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Dns01: "dns-01";
        readonly Http01: "http-01";
    }>;
    /** @deprecated use `AcceptedChallenges$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Dns01: "dns-01";
        readonly Http01: "http-01";
    }>;
}
/** @internal */
export declare const RecommendedIPv4$inboundSchema: z.ZodType<RecommendedIPv4, z.ZodTypeDef, unknown>;
/** @internal */
export type RecommendedIPv4$Outbound = {};
/** @internal */
export declare const RecommendedIPv4$outboundSchema: z.ZodType<RecommendedIPv4$Outbound, z.ZodTypeDef, RecommendedIPv4>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace RecommendedIPv4$ {
    /** @deprecated use `RecommendedIPv4$inboundSchema` instead. */
    const inboundSchema: z.ZodType<RecommendedIPv4, z.ZodTypeDef, unknown>;
    /** @deprecated use `RecommendedIPv4$outboundSchema` instead. */
    const outboundSchema: z.ZodType<RecommendedIPv4$Outbound, z.ZodTypeDef, RecommendedIPv4>;
    /** @deprecated use `RecommendedIPv4$Outbound` instead. */
    type Outbound = RecommendedIPv4$Outbound;
}
export declare function recommendedIPv4ToJSON(recommendedIPv4: RecommendedIPv4): string;
export declare function recommendedIPv4FromJSON(jsonString: string): SafeParseResult<RecommendedIPv4, SDKValidationError>;
/** @internal */
export declare const RecommendedCNAME$inboundSchema: z.ZodType<RecommendedCNAME, z.ZodTypeDef, unknown>;
/** @internal */
export type RecommendedCNAME$Outbound = {};
/** @internal */
export declare const RecommendedCNAME$outboundSchema: z.ZodType<RecommendedCNAME$Outbound, z.ZodTypeDef, RecommendedCNAME>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace RecommendedCNAME$ {
    /** @deprecated use `RecommendedCNAME$inboundSchema` instead. */
    const inboundSchema: z.ZodType<RecommendedCNAME, z.ZodTypeDef, unknown>;
    /** @deprecated use `RecommendedCNAME$outboundSchema` instead. */
    const outboundSchema: z.ZodType<RecommendedCNAME$Outbound, z.ZodTypeDef, RecommendedCNAME>;
    /** @deprecated use `RecommendedCNAME$Outbound` instead. */
    type Outbound = RecommendedCNAME$Outbound;
}
export declare function recommendedCNAMEToJSON(recommendedCNAME: RecommendedCNAME): string;
export declare function recommendedCNAMEFromJSON(jsonString: string): SafeParseResult<RecommendedCNAME, SDKValidationError>;
/** @internal */
export declare const GetDomainConfigResponseBody$inboundSchema: z.ZodType<GetDomainConfigResponseBody, z.ZodTypeDef, unknown>;
/** @internal */
export type GetDomainConfigResponseBody$Outbound = {
    configuredBy?: string | null | undefined;
    acceptedChallenges?: Array<string> | undefined;
    recommendedIPv4?: Array<RecommendedIPv4$Outbound> | undefined;
    recommendedCNAME?: Array<RecommendedCNAME$Outbound> | undefined;
    misconfigured: boolean;
};
/** @internal */
export declare const GetDomainConfigResponseBody$outboundSchema: z.ZodType<GetDomainConfigResponseBody$Outbound, z.ZodTypeDef, GetDomainConfigResponseBody>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetDomainConfigResponseBody$ {
    /** @deprecated use `GetDomainConfigResponseBody$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetDomainConfigResponseBody, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetDomainConfigResponseBody$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetDomainConfigResponseBody$Outbound, z.ZodTypeDef, GetDomainConfigResponseBody>;
    /** @deprecated use `GetDomainConfigResponseBody$Outbound` instead. */
    type Outbound = GetDomainConfigResponseBody$Outbound;
}
export declare function getDomainConfigResponseBodyToJSON(getDomainConfigResponseBody: GetDomainConfigResponseBody): string;
export declare function getDomainConfigResponseBodyFromJSON(jsonString: string): SafeParseResult<GetDomainConfigResponseBody, SDKValidationError>;
//# sourceMappingURL=getdomainconfigop.d.ts.map