import * as z from "zod";
import { ClosedEnum } from "../types/enums.js";
import { Result as SafeParseResult } from "../types/fp.js";
import { SDKValidationError } from "./sdkvalidationerror.js";
export type GetDomainRequest = {
    /**
     * The name of the domain.
     */
    domain: string;
    /**
     * 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;
};
/**
 * An object containing information of the domain creator, including the user's id, username, and email.
 */
export type GetDomainCreator = {
    username: string;
    email: string;
    customerId?: string | null | undefined;
    isDomainReseller?: boolean | undefined;
    id: string;
};
/**
 * The type of service the domain is handled by. `external` if the DNS is externally handled, `zeit.world` if handled with Vercel, or `na` if the service is not available.
 */
export declare const ServiceType: {
    readonly ZeitWorld: "zeit.world";
    readonly External: "external";
    readonly Na: "na";
};
/**
 * The type of service the domain is handled by. `external` if the DNS is externally handled, `zeit.world` if handled with Vercel, or `na` if the service is not available.
 */
export type ServiceType = ClosedEnum<typeof ServiceType>;
export type GetDomainDomain = {
    suffix: boolean;
    /**
     * If the domain has the ownership verified.
     */
    verified: boolean;
    /**
     * A list of the current nameservers of the domain.
     */
    nameservers: Array<string>;
    /**
     * A list of the intended nameservers for the domain to point to Vercel DNS.
     */
    intendedNameservers: Array<string>;
    /**
     * A list of custom nameservers for the domain to point to. Only applies to domains purchased with Vercel.
     */
    customNameservers?: Array<string> | undefined;
    /**
     * An object containing information of the domain creator, including the user's id, username, and email.
     */
    creator: GetDomainCreator;
    teamId: string | null;
    userId: string;
    /**
     * If it was purchased through Vercel, the timestamp in milliseconds when it was purchased.
     */
    boughtAt: number | null;
    /**
     * Timestamp in milliseconds when the domain was created in the registry.
     */
    createdAt: number;
    /**
     * Timestamp in milliseconds at which the domain is set to expire. `null` if not bought with Vercel.
     */
    expiresAt: number | null;
    /**
     * The unique identifier of the domain.
     */
    id: string;
    /**
     * The domain name.
     */
    name: string;
    /**
     * Timestamp in milliseconds at which the domain was ordered.
     */
    orderedAt?: number | undefined;
    /**
     * Indicates whether the domain is set to automatically renew.
     */
    renew?: boolean | undefined;
    /**
     * The type of service the domain is handled by. `external` if the DNS is externally handled, `zeit.world` if handled with Vercel, or `na` if the service is not available.
     */
    serviceType: ServiceType;
    /**
     * Timestamp in milliseconds at which the domain was successfully transferred into Vercel. `null` if the transfer is still processing or was never transferred in.
     */
    transferredAt?: number | null | undefined;
    /**
     * If transferred into Vercel, timestamp in milliseconds when the domain transfer was initiated.
     */
    transferStartedAt?: number | undefined;
};
/**
 * Successful response retrieving an information for a specific domains.
 */
export type GetDomainResponseBody = {
    domain: GetDomainDomain;
};
/** @internal */
export declare const GetDomainRequest$inboundSchema: z.ZodType<GetDomainRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type GetDomainRequest$Outbound = {
    domain: string;
    teamId?: string | undefined;
    slug?: string | undefined;
};
/** @internal */
export declare const GetDomainRequest$outboundSchema: z.ZodType<GetDomainRequest$Outbound, z.ZodTypeDef, GetDomainRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetDomainRequest$ {
    /** @deprecated use `GetDomainRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetDomainRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetDomainRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetDomainRequest$Outbound, z.ZodTypeDef, GetDomainRequest>;
    /** @deprecated use `GetDomainRequest$Outbound` instead. */
    type Outbound = GetDomainRequest$Outbound;
}
export declare function getDomainRequestToJSON(getDomainRequest: GetDomainRequest): string;
export declare function getDomainRequestFromJSON(jsonString: string): SafeParseResult<GetDomainRequest, SDKValidationError>;
/** @internal */
export declare const GetDomainCreator$inboundSchema: z.ZodType<GetDomainCreator, z.ZodTypeDef, unknown>;
/** @internal */
export type GetDomainCreator$Outbound = {
    username: string;
    email: string;
    customerId?: string | null | undefined;
    isDomainReseller?: boolean | undefined;
    id: string;
};
/** @internal */
export declare const GetDomainCreator$outboundSchema: z.ZodType<GetDomainCreator$Outbound, z.ZodTypeDef, GetDomainCreator>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetDomainCreator$ {
    /** @deprecated use `GetDomainCreator$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetDomainCreator, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetDomainCreator$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetDomainCreator$Outbound, z.ZodTypeDef, GetDomainCreator>;
    /** @deprecated use `GetDomainCreator$Outbound` instead. */
    type Outbound = GetDomainCreator$Outbound;
}
export declare function getDomainCreatorToJSON(getDomainCreator: GetDomainCreator): string;
export declare function getDomainCreatorFromJSON(jsonString: string): SafeParseResult<GetDomainCreator, SDKValidationError>;
/** @internal */
export declare const ServiceType$inboundSchema: z.ZodNativeEnum<typeof ServiceType>;
/** @internal */
export declare const ServiceType$outboundSchema: z.ZodNativeEnum<typeof ServiceType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ServiceType$ {
    /** @deprecated use `ServiceType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly ZeitWorld: "zeit.world";
        readonly External: "external";
        readonly Na: "na";
    }>;
    /** @deprecated use `ServiceType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly ZeitWorld: "zeit.world";
        readonly External: "external";
        readonly Na: "na";
    }>;
}
/** @internal */
export declare const GetDomainDomain$inboundSchema: z.ZodType<GetDomainDomain, z.ZodTypeDef, unknown>;
/** @internal */
export type GetDomainDomain$Outbound = {
    suffix: boolean;
    verified: boolean;
    nameservers: Array<string>;
    intendedNameservers: Array<string>;
    customNameservers?: Array<string> | undefined;
    creator: GetDomainCreator$Outbound;
    teamId: string | null;
    userId: string;
    boughtAt: number | null;
    createdAt: number;
    expiresAt: number | null;
    id: string;
    name: string;
    orderedAt?: number | undefined;
    renew?: boolean | undefined;
    serviceType: string;
    transferredAt?: number | null | undefined;
    transferStartedAt?: number | undefined;
};
/** @internal */
export declare const GetDomainDomain$outboundSchema: z.ZodType<GetDomainDomain$Outbound, z.ZodTypeDef, GetDomainDomain>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetDomainDomain$ {
    /** @deprecated use `GetDomainDomain$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetDomainDomain, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetDomainDomain$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetDomainDomain$Outbound, z.ZodTypeDef, GetDomainDomain>;
    /** @deprecated use `GetDomainDomain$Outbound` instead. */
    type Outbound = GetDomainDomain$Outbound;
}
export declare function getDomainDomainToJSON(getDomainDomain: GetDomainDomain): string;
export declare function getDomainDomainFromJSON(jsonString: string): SafeParseResult<GetDomainDomain, SDKValidationError>;
/** @internal */
export declare const GetDomainResponseBody$inboundSchema: z.ZodType<GetDomainResponseBody, z.ZodTypeDef, unknown>;
/** @internal */
export type GetDomainResponseBody$Outbound = {
    domain: GetDomainDomain$Outbound;
};
/** @internal */
export declare const GetDomainResponseBody$outboundSchema: z.ZodType<GetDomainResponseBody$Outbound, z.ZodTypeDef, GetDomainResponseBody>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetDomainResponseBody$ {
    /** @deprecated use `GetDomainResponseBody$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetDomainResponseBody, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetDomainResponseBody$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetDomainResponseBody$Outbound, z.ZodTypeDef, GetDomainResponseBody>;
    /** @deprecated use `GetDomainResponseBody$Outbound` instead. */
    type Outbound = GetDomainResponseBody$Outbound;
}
export declare function getDomainResponseBodyToJSON(getDomainResponseBody: GetDomainResponseBody): string;
export declare function getDomainResponseBodyFromJSON(jsonString: string): SafeParseResult<GetDomainResponseBody, SDKValidationError>;
//# sourceMappingURL=getdomainop.d.ts.map