import * as z from "zod/v3";
import { ClosedEnum } from "../types/enums.js";
import { Result as SafeParseResult } from "../types/fp.js";
import { Pagination } from "./pagination.js";
import { SDKValidationError } from "./sdkvalidationerror.js";
export type GetDomainsRequest = {
    /**
     * Maximum number of domains to list from a request.
     */
    limit?: number | undefined;
    /**
     * Get domains created after this JavaScript timestamp.
     */
    since?: number | undefined;
    /**
     * Get domains created before this JavaScript timestamp.
     */
    until?: number | 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;
};
/**
 * An object containing information of the domain creator, including the user's id, username, and email.
 */
export type GetDomainsCreator = {
    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 GetDomainsServiceType: {
    readonly External: "external";
    readonly Na: "na";
    readonly ZeitWorld: "zeit.world";
};
/**
 * 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 GetDomainsServiceType = ClosedEnum<typeof GetDomainsServiceType>;
export type GetDomainsDomains = {
    /**
     * Timestamp in milliseconds at which the domain is set to expire. null if not bought with Vercel.
     */
    expiresAt: number | null;
    /**
     * 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: GetDomainsCreator;
    /**
     * The domain name.
     */
    name: string;
    teamId: string | null;
    /**
     * 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;
    /**
     * The unique identifier of the domain.
     */
    id: string;
    /**
     * 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: GetDomainsServiceType;
    /**
     * 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;
    userId: string;
};
/**
 * Successful response retrieving a list of domains.
 */
export type GetDomainsResponseBody = {
    domains: Array<GetDomainsDomains>;
    /**
     * This object contains information related to the pagination of the current request, including the necessary parameters to get the next or previous page of data.
     */
    pagination: Pagination;
};
/** @internal */
export type GetDomainsRequest$Outbound = {
    limit?: number | undefined;
    since?: number | undefined;
    until?: number | undefined;
    teamId?: string | undefined;
    slug?: string | undefined;
};
/** @internal */
export declare const GetDomainsRequest$outboundSchema: z.ZodType<GetDomainsRequest$Outbound, z.ZodTypeDef, GetDomainsRequest>;
export declare function getDomainsRequestToJSON(getDomainsRequest: GetDomainsRequest): string;
/** @internal */
export declare const GetDomainsCreator$inboundSchema: z.ZodType<GetDomainsCreator, z.ZodTypeDef, unknown>;
export declare function getDomainsCreatorFromJSON(jsonString: string): SafeParseResult<GetDomainsCreator, SDKValidationError>;
/** @internal */
export declare const GetDomainsServiceType$inboundSchema: z.ZodNativeEnum<typeof GetDomainsServiceType>;
/** @internal */
export declare const GetDomainsDomains$inboundSchema: z.ZodType<GetDomainsDomains, z.ZodTypeDef, unknown>;
export declare function getDomainsDomainsFromJSON(jsonString: string): SafeParseResult<GetDomainsDomains, SDKValidationError>;
/** @internal */
export declare const GetDomainsResponseBody$inboundSchema: z.ZodType<GetDomainsResponseBody, z.ZodTypeDef, unknown>;
export declare function getDomainsResponseBodyFromJSON(jsonString: string): SafeParseResult<GetDomainsResponseBody, SDKValidationError>;
//# sourceMappingURL=getdomainsop.d.ts.map