import * as z from "zod/v3";
import { ClosedEnum } from "../types/enums.js";
import { Result as SafeParseResult } from "../types/fp.js";
import { SDKValidationError } from "./sdkvalidationerror.js";
/**
 * Status code for domain redirect
 */
export declare const RedirectStatusCode: {
    readonly ThreeHundredAndOne: 301;
    readonly ThreeHundredAndTwo: 302;
    readonly ThreeHundredAndSeven: 307;
    readonly ThreeHundredAndEight: 308;
};
/**
 * Status code for domain redirect
 */
export type RedirectStatusCode = ClosedEnum<typeof RedirectStatusCode>;
export type UpdateProjectDomainRequestBody = {
    /**
     * Git branch to link the project domain
     */
    gitBranch?: string | null | undefined;
    /**
     * Target destination domain for redirect
     */
    redirect?: string | null | undefined;
    /**
     * Status code for domain redirect
     */
    redirectStatusCode?: RedirectStatusCode | null | undefined;
};
export type UpdateProjectDomainRequest = {
    /**
     * The unique project identifier or the project name
     */
    idOrName: string;
    /**
     * The project domain name
     */
    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;
    requestBody: UpdateProjectDomainRequestBody;
};
/**
 * 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 UpdateProjectDomainVerification = {
    type: string;
    domain: string;
    value: string;
    reason: string;
};
/**
 * The domain was updated successfuly
 */
export type UpdateProjectDomainResponseBody = {
    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<UpdateProjectDomainVerification> | undefined;
};
/** @internal */
export declare const RedirectStatusCode$outboundSchema: z.ZodNativeEnum<typeof RedirectStatusCode>;
/** @internal */
export type UpdateProjectDomainRequestBody$Outbound = {
    gitBranch?: string | null | undefined;
    redirect?: string | null | undefined;
    redirectStatusCode?: number | null | undefined;
};
/** @internal */
export declare const UpdateProjectDomainRequestBody$outboundSchema: z.ZodType<UpdateProjectDomainRequestBody$Outbound, z.ZodTypeDef, UpdateProjectDomainRequestBody>;
export declare function updateProjectDomainRequestBodyToJSON(updateProjectDomainRequestBody: UpdateProjectDomainRequestBody): string;
/** @internal */
export type UpdateProjectDomainRequest$Outbound = {
    idOrName: string;
    domain: string;
    teamId?: string | undefined;
    slug?: string | undefined;
    RequestBody: UpdateProjectDomainRequestBody$Outbound;
};
/** @internal */
export declare const UpdateProjectDomainRequest$outboundSchema: z.ZodType<UpdateProjectDomainRequest$Outbound, z.ZodTypeDef, UpdateProjectDomainRequest>;
export declare function updateProjectDomainRequestToJSON(updateProjectDomainRequest: UpdateProjectDomainRequest): string;
/** @internal */
export declare const UpdateProjectDomainVerification$inboundSchema: z.ZodType<UpdateProjectDomainVerification, z.ZodTypeDef, unknown>;
export declare function updateProjectDomainVerificationFromJSON(jsonString: string): SafeParseResult<UpdateProjectDomainVerification, SDKValidationError>;
/** @internal */
export declare const UpdateProjectDomainResponseBody$inboundSchema: z.ZodType<UpdateProjectDomainResponseBody, z.ZodTypeDef, unknown>;
export declare function updateProjectDomainResponseBodyFromJSON(jsonString: string): SafeParseResult<UpdateProjectDomainResponseBody, SDKValidationError>;
//# sourceMappingURL=updateprojectdomainop.d.ts.map