import * as z from "zod";
import { ClosedEnum } from "../types/enums.js";
import { Result as SafeParseResult } from "../types/fp.js";
import { Pagination, Pagination$Outbound } from "./pagination.js";
import { SDKValidationError } from "./sdkvalidationerror.js";
/**
 * Filters only production domains when set to `true`.
 */
export declare const Production: {
    readonly True: "true";
    readonly False: "false";
};
/**
 * Filters only production domains when set to `true`.
 */
export type Production = ClosedEnum<typeof Production>;
/**
 * Filters on the target of the domain. Can be either \"production\", \"preview\"
 */
export declare const QueryParamTarget: {
    readonly Production: "production";
    readonly Preview: "preview";
};
/**
 * Filters on the target of the domain. Can be either \"production\", \"preview\"
 */
export type QueryParamTarget = ClosedEnum<typeof QueryParamTarget>;
/**
 * Excludes redirect project domains when \"false\". Includes redirect project domains when \"true\" (default).
 */
export declare const Redirects: {
    readonly True: "true";
    readonly False: "false";
};
/**
 * Excludes redirect project domains when \"false\". Includes redirect project domains when \"true\" (default).
 */
export type Redirects = ClosedEnum<typeof Redirects>;
/**
 * Filters domains based on their verification status.
 */
export declare const Verified: {
    readonly True: "true";
    readonly False: "false";
};
/**
 * Filters domains based on their verification status.
 */
export type Verified = ClosedEnum<typeof Verified>;
/**
 * Domains sort order by createdAt
 */
export declare const Order: {
    readonly Asc: "ASC";
    readonly Desc: "DESC";
};
/**
 * Domains sort order by createdAt
 */
export type Order = ClosedEnum<typeof Order>;
export type GetProjectDomainsRequest = {
    /**
     * The unique project identifier or the project name
     */
    idOrName: string;
    /**
     * Filters only production domains when set to `true`.
     */
    production?: Production | undefined;
    /**
     * Filters on the target of the domain. Can be either \"production\", \"preview\"
     */
    target?: QueryParamTarget | undefined;
    /**
     * Filters domains based on specific branch.
     */
    gitBranch?: string | undefined;
    /**
     * Excludes redirect project domains when \"false\". Includes redirect project domains when \"true\" (default).
     */
    redirects?: Redirects | undefined;
    /**
     * Filters domains based on their redirect target.
     */
    redirect?: string | undefined;
    /**
     * Filters domains based on their verification status.
     */
    verified?: Verified | undefined;
    /**
     * Maximum number of domains to list from a request (max 100).
     */
    limit?: number | undefined;
    /**
     * Get domains created after this JavaScript timestamp.
     */
    since?: number | undefined;
    /**
     * Get domains created before this JavaScript timestamp.
     */
    until?: number | undefined;
    /**
     * Domains sort order by createdAt
     */
    order?: Order | 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;
};
/**
 * A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.
 */
export type GetProjectDomainsVerification = {
    type: string;
    domain: string;
    value: string;
    reason: string;
};
export type GetProjectDomainsDomains = {
    name: string;
    apexName: string;
    projectId: string;
    redirect?: string | null | undefined;
    redirectStatusCode?: number | null | undefined;
    gitBranch?: string | null | undefined;
    customEnvironmentId?: string | null | undefined;
    updatedAt?: number | undefined;
    createdAt?: number | undefined;
    /**
     * `true` if the domain is verified for use with the project. If `false` it will not be used as an alias on this project until the challenge in `verification` is completed.
     */
    verified: boolean;
    /**
     * A list of verification challenges, one of which must be completed to verify the domain for use on the project. After the challenge is complete `POST /projects/:idOrName/domains/:domain/verify` to verify the domain. Possible challenges: - If `verification.type = TXT` the `verification.domain` will be checked for a TXT record matching `verification.value`.
     */
    verification?: Array<GetProjectDomainsVerification> | undefined;
};
/**
 * Successful response retrieving a list of domains
 */
export type GetProjectDomainsResponseBody = {
    domains: Array<GetProjectDomainsDomains>;
    /**
     * 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 declare const Production$inboundSchema: z.ZodNativeEnum<typeof Production>;
/** @internal */
export declare const Production$outboundSchema: z.ZodNativeEnum<typeof Production>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Production$ {
    /** @deprecated use `Production$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly True: "true";
        readonly False: "false";
    }>;
    /** @deprecated use `Production$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly True: "true";
        readonly False: "false";
    }>;
}
/** @internal */
export declare const QueryParamTarget$inboundSchema: z.ZodNativeEnum<typeof QueryParamTarget>;
/** @internal */
export declare const QueryParamTarget$outboundSchema: z.ZodNativeEnum<typeof QueryParamTarget>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace QueryParamTarget$ {
    /** @deprecated use `QueryParamTarget$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Production: "production";
        readonly Preview: "preview";
    }>;
    /** @deprecated use `QueryParamTarget$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Production: "production";
        readonly Preview: "preview";
    }>;
}
/** @internal */
export declare const Redirects$inboundSchema: z.ZodNativeEnum<typeof Redirects>;
/** @internal */
export declare const Redirects$outboundSchema: z.ZodNativeEnum<typeof Redirects>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Redirects$ {
    /** @deprecated use `Redirects$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly True: "true";
        readonly False: "false";
    }>;
    /** @deprecated use `Redirects$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly True: "true";
        readonly False: "false";
    }>;
}
/** @internal */
export declare const Verified$inboundSchema: z.ZodNativeEnum<typeof Verified>;
/** @internal */
export declare const Verified$outboundSchema: z.ZodNativeEnum<typeof Verified>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Verified$ {
    /** @deprecated use `Verified$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly True: "true";
        readonly False: "false";
    }>;
    /** @deprecated use `Verified$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly True: "true";
        readonly False: "false";
    }>;
}
/** @internal */
export declare const Order$inboundSchema: z.ZodNativeEnum<typeof Order>;
/** @internal */
export declare const Order$outboundSchema: z.ZodNativeEnum<typeof Order>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace Order$ {
    /** @deprecated use `Order$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Asc: "ASC";
        readonly Desc: "DESC";
    }>;
    /** @deprecated use `Order$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Asc: "ASC";
        readonly Desc: "DESC";
    }>;
}
/** @internal */
export declare const GetProjectDomainsRequest$inboundSchema: z.ZodType<GetProjectDomainsRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type GetProjectDomainsRequest$Outbound = {
    idOrName: string;
    production: string;
    target?: string | undefined;
    gitBranch?: string | undefined;
    redirects: string;
    redirect?: string | undefined;
    verified?: string | undefined;
    limit?: number | undefined;
    since?: number | undefined;
    until?: number | undefined;
    order: string;
    teamId?: string | undefined;
    slug?: string | undefined;
};
/** @internal */
export declare const GetProjectDomainsRequest$outboundSchema: z.ZodType<GetProjectDomainsRequest$Outbound, z.ZodTypeDef, GetProjectDomainsRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetProjectDomainsRequest$ {
    /** @deprecated use `GetProjectDomainsRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetProjectDomainsRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetProjectDomainsRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetProjectDomainsRequest$Outbound, z.ZodTypeDef, GetProjectDomainsRequest>;
    /** @deprecated use `GetProjectDomainsRequest$Outbound` instead. */
    type Outbound = GetProjectDomainsRequest$Outbound;
}
export declare function getProjectDomainsRequestToJSON(getProjectDomainsRequest: GetProjectDomainsRequest): string;
export declare function getProjectDomainsRequestFromJSON(jsonString: string): SafeParseResult<GetProjectDomainsRequest, SDKValidationError>;
/** @internal */
export declare const GetProjectDomainsVerification$inboundSchema: z.ZodType<GetProjectDomainsVerification, z.ZodTypeDef, unknown>;
/** @internal */
export type GetProjectDomainsVerification$Outbound = {
    type: string;
    domain: string;
    value: string;
    reason: string;
};
/** @internal */
export declare const GetProjectDomainsVerification$outboundSchema: z.ZodType<GetProjectDomainsVerification$Outbound, z.ZodTypeDef, GetProjectDomainsVerification>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetProjectDomainsVerification$ {
    /** @deprecated use `GetProjectDomainsVerification$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetProjectDomainsVerification, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetProjectDomainsVerification$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetProjectDomainsVerification$Outbound, z.ZodTypeDef, GetProjectDomainsVerification>;
    /** @deprecated use `GetProjectDomainsVerification$Outbound` instead. */
    type Outbound = GetProjectDomainsVerification$Outbound;
}
export declare function getProjectDomainsVerificationToJSON(getProjectDomainsVerification: GetProjectDomainsVerification): string;
export declare function getProjectDomainsVerificationFromJSON(jsonString: string): SafeParseResult<GetProjectDomainsVerification, SDKValidationError>;
/** @internal */
export declare const GetProjectDomainsDomains$inboundSchema: z.ZodType<GetProjectDomainsDomains, z.ZodTypeDef, unknown>;
/** @internal */
export type GetProjectDomainsDomains$Outbound = {
    name: string;
    apexName: string;
    projectId: string;
    redirect?: string | null | undefined;
    redirectStatusCode?: number | null | undefined;
    gitBranch?: string | null | undefined;
    customEnvironmentId?: string | null | undefined;
    updatedAt?: number | undefined;
    createdAt?: number | undefined;
    verified: boolean;
    verification?: Array<GetProjectDomainsVerification$Outbound> | undefined;
};
/** @internal */
export declare const GetProjectDomainsDomains$outboundSchema: z.ZodType<GetProjectDomainsDomains$Outbound, z.ZodTypeDef, GetProjectDomainsDomains>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetProjectDomainsDomains$ {
    /** @deprecated use `GetProjectDomainsDomains$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetProjectDomainsDomains, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetProjectDomainsDomains$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetProjectDomainsDomains$Outbound, z.ZodTypeDef, GetProjectDomainsDomains>;
    /** @deprecated use `GetProjectDomainsDomains$Outbound` instead. */
    type Outbound = GetProjectDomainsDomains$Outbound;
}
export declare function getProjectDomainsDomainsToJSON(getProjectDomainsDomains: GetProjectDomainsDomains): string;
export declare function getProjectDomainsDomainsFromJSON(jsonString: string): SafeParseResult<GetProjectDomainsDomains, SDKValidationError>;
/** @internal */
export declare const GetProjectDomainsResponseBody$inboundSchema: z.ZodType<GetProjectDomainsResponseBody, z.ZodTypeDef, unknown>;
/** @internal */
export type GetProjectDomainsResponseBody$Outbound = {
    domains: Array<GetProjectDomainsDomains$Outbound>;
    pagination: Pagination$Outbound;
};
/** @internal */
export declare const GetProjectDomainsResponseBody$outboundSchema: z.ZodType<GetProjectDomainsResponseBody$Outbound, z.ZodTypeDef, GetProjectDomainsResponseBody>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace GetProjectDomainsResponseBody$ {
    /** @deprecated use `GetProjectDomainsResponseBody$inboundSchema` instead. */
    const inboundSchema: z.ZodType<GetProjectDomainsResponseBody, z.ZodTypeDef, unknown>;
    /** @deprecated use `GetProjectDomainsResponseBody$outboundSchema` instead. */
    const outboundSchema: z.ZodType<GetProjectDomainsResponseBody$Outbound, z.ZodTypeDef, GetProjectDomainsResponseBody>;
    /** @deprecated use `GetProjectDomainsResponseBody$Outbound` instead. */
    type Outbound = GetProjectDomainsResponseBody$Outbound;
}
export declare function getProjectDomainsResponseBodyToJSON(getProjectDomainsResponseBody: GetProjectDomainsResponseBody): string;
export declare function getProjectDomainsResponseBodyFromJSON(jsonString: string): SafeParseResult<GetProjectDomainsResponseBody, SDKValidationError>;
//# sourceMappingURL=getprojectdomainsop.d.ts.map