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";
import { UploadProjectAvatarAbuse, UploadProjectAvatarDefaultResourceConfig, UploadProjectAvatarDeploymentPolicy, UploadProjectAvatarFeatures, UploadProjectAvatarGitComments, UploadProjectAvatarGitProviderOptions, UploadProjectAvatarInternalRoutes1, UploadProjectAvatarInternalRoutes2, UploadProjectAvatarLastAliasRequest, UploadProjectAvatarLastRollbackTarget, UploadProjectAvatarOidcTokenConfig, UploadProjectAvatarPermissions, UploadProjectAvatarProtectionBypass, UploadProjectAvatarSecurity, UploadProjectAvatarSsoProtection, UploadProjectAvatarStaticIps, UploadProjectAvatarTargets, UploadProjectAvatarTier, UploadProjectAvatarTrustedIps, UploadProjectAvatarTrustedSources, UploadProjectAvatarUsageStatus, UploadProjectAvatarWebAnalytics } from "./uploadprojectavatarinternalroutes1.js";
import { UploadProjectAvatarAlias, UploadProjectAvatarAnalytics, UploadProjectAvatarBlobs, UploadProjectAvatarConnectConfigurations, UploadProjectAvatarCreator, UploadProjectAvatarCrons, UploadProjectAvatarCustomEnvironments, UploadProjectAvatarDataCache, UploadProjectAvatarDeploymentExpiration, UploadProjectAvatarEnv, UploadProjectAvatarExpiration, UploadProjectAvatarFramework, UploadProjectAvatarIpBuckets, UploadProjectAvatarJobs, UploadProjectAvatarLatestDeployments, UploadProjectAvatarLink, UploadProjectAvatarMicrofrontends, UploadProjectAvatarNodeVersion, UploadProjectAvatarOptionsAllowlist, UploadProjectAvatarPassport, UploadProjectAvatarPasswordProtection, UploadProjectAvatarProtectionConfig, UploadProjectAvatarResourceConfig, UploadProjectAvatarRollbackDescription, UploadProjectAvatarRollingRelease, UploadProjectAvatarSandbox, UploadProjectAvatarServices, UploadProjectAvatarSpeedInsights } from "./uploadprojectavatarprojectsbuildmachinetype.js";
export type UploadProjectAvatarInternalRoutes = UploadProjectAvatarInternalRoutes1 | UploadProjectAvatarInternalRoutes2;
export declare const UploadProjectAvatarAction: {
    readonly Accept: "accept";
    readonly Cancel: "cancel";
    readonly Delete: "delete";
};
export type UploadProjectAvatarAction = ClosedEnum<typeof UploadProjectAvatarAction>;
export type UploadProjectAvatarValuePreviousValue = string | number | boolean;
export type UploadProjectAvatarValueCurrentValue = string | number | boolean;
export type UploadProjectAvatarValue3 = {
    previousValue: string | number | boolean;
    currentValue: string | number | boolean;
};
export type UploadProjectAvatarValue = UploadProjectAvatarValue3 | string | number | boolean;
export type UploadProjectAvatarDismissedToasts = {
    key: string;
    dismissedAt: number;
    action: UploadProjectAvatarAction;
    value: UploadProjectAvatarValue3 | string | number | boolean | null;
};
export declare const UploadProjectAvatarProjectsEnv: {
    readonly Preview: "preview";
    readonly Production: "production";
};
export type UploadProjectAvatarProjectsEnv = ClosedEnum<typeof UploadProjectAvatarProjectsEnv>;
/**
 * Which tracing destination this rule applies to. `internal` is the hidden Vercel production-tracing drain (internal delivery); `external` is any customer-configured drain. Derived from the owning drain's delivery type when project tracing is computed; absent on configs persisted before this field existed.
 */
export declare const UploadProjectAvatarDestination: {
    readonly External: "external";
    readonly Internal: "internal";
};
/**
 * Which tracing destination this rule applies to. `internal` is the hidden Vercel production-tracing drain (internal delivery); `external` is any customer-configured drain. Derived from the owning drain's delivery type when project tracing is computed; absent on configs persisted before this field existed.
 */
export type UploadProjectAvatarDestination = ClosedEnum<typeof UploadProjectAvatarDestination>;
export type UploadProjectAvatarSamplingRules = {
    rate: number;
    env?: UploadProjectAvatarProjectsEnv | undefined;
    requestPath?: string | undefined;
    /**
     * Which tracing destination this rule applies to. `internal` is the hidden Vercel production-tracing drain (internal delivery); `external` is any customer-configured drain. Derived from the owning drain's delivery type when project tracing is computed; absent on configs persisted before this field existed.
     */
    destination?: UploadProjectAvatarDestination | undefined;
};
export type UploadProjectAvatarTracing = {
    domains?: string | undefined;
    ignorePaths?: Array<string> | undefined;
    samplingRules?: Array<UploadProjectAvatarSamplingRules> | undefined;
};
export type UploadProjectAvatarResponseBody = {
    accountId: string;
    creator?: UploadProjectAvatarCreator | undefined;
    alias: Array<UploadProjectAvatarAlias>;
    analytics?: UploadProjectAvatarAnalytics | undefined;
    appliedCve55182Migration?: boolean | undefined;
    speedInsights?: UploadProjectAvatarSpeedInsights | undefined;
    autoExposeSystemEnvs?: boolean | undefined;
    autoAssignCustomDomains?: boolean | undefined;
    autoAssignCustomDomainsUpdatedBy?: string | undefined;
    buildCommand?: string | null | undefined;
    commandForIgnoringBuildStep?: string | null | undefined;
    connectConfigurations?: Array<UploadProjectAvatarConnectConfigurations> | null | undefined;
    connectConfigurationId?: string | null | undefined;
    connectBuildsEnabled?: boolean | undefined;
    passiveConnectConfigurationId?: string | null | undefined;
    createdAt?: number | undefined;
    customerSupportCodeVisibility?: boolean | undefined;
    crons?: UploadProjectAvatarCrons | undefined;
    dataCache?: UploadProjectAvatarDataCache | undefined;
    /**
     * Retention policies for deployments. These are enforced at the project level, but we also maintain an instance of this at the team level as a default policy that gets applied to new projects.
     */
    deploymentExpiration: UploadProjectAvatarDeploymentExpiration;
    expiration?: UploadProjectAvatarExpiration | undefined;
    devCommand?: string | null | undefined;
    directoryListing: boolean;
    installCommand?: string | null | undefined;
    env?: Array<UploadProjectAvatarEnv> | undefined;
    customEnvironments?: Array<UploadProjectAvatarCustomEnvironments> | undefined;
    framework?: UploadProjectAvatarFramework | null | undefined;
    services?: Array<UploadProjectAvatarServices> | undefined;
    gitForkProtection?: boolean | undefined;
    gitLFS?: boolean | undefined;
    id: string;
    ipBuckets?: Array<UploadProjectAvatarIpBuckets> | undefined;
    jobs?: UploadProjectAvatarJobs | undefined;
    latestDeployments?: Array<UploadProjectAvatarLatestDeployments> | undefined;
    link?: UploadProjectAvatarLink | undefined;
    blobs?: UploadProjectAvatarBlobs | undefined;
    microfrontends?: UploadProjectAvatarMicrofrontends | undefined;
    name: string;
    nodeVersion: UploadProjectAvatarNodeVersion;
    optionsAllowlist?: UploadProjectAvatarOptionsAllowlist | null | undefined;
    outputDirectory?: string | null | undefined;
    passwordProtection?: UploadProjectAvatarPasswordProtection | null | undefined;
    passport?: UploadProjectAvatarPassport | null | undefined;
    protectionConfig?: UploadProjectAvatarProtectionConfig | undefined;
    sandbox?: UploadProjectAvatarSandbox | undefined;
    productionDeploymentsFastLane?: boolean | undefined;
    resourceConfig: UploadProjectAvatarResourceConfig;
    /**
     * Description of why a project was rolled back, and by whom. Note that lastAliasRequest contains the from/to details of the rollback.
     */
    rollbackDescription?: UploadProjectAvatarRollbackDescription | undefined;
    /**
     * Project-level rolling release configuration that defines how deployments should be gradually rolled out
     */
    rollingRelease?: UploadProjectAvatarRollingRelease | null | undefined;
    defaultResourceConfig: UploadProjectAvatarDefaultResourceConfig;
    rootDirectory?: string | null | undefined;
    serverlessFunctionZeroConfigFailover?: boolean | undefined;
    skewProtectionBoundaryAt?: number | undefined;
    skewProtectionMaxAge?: number | undefined;
    skewProtectionAllowedDomains?: Array<string> | undefined;
    skipGitConnectDuringLink?: boolean | undefined;
    staticIps?: UploadProjectAvatarStaticIps | undefined;
    sourceFilesOutsideRootDirectory?: boolean | undefined;
    enableAffectedProjectsDeployments?: boolean | undefined;
    enableExternalRewriteCaching?: boolean | undefined;
    ssoProtection?: UploadProjectAvatarSsoProtection | null | undefined;
    targets?: {
        [k: string]: UploadProjectAvatarTargets | null;
    } | undefined;
    transferCompletedAt?: number | undefined;
    transferStartedAt?: number | undefined;
    transferToAccountId?: string | undefined;
    transferredFromAccountId?: string | undefined;
    updatedAt?: number | undefined;
    live?: boolean | undefined;
    enablePreviewFeedback?: boolean | null | undefined;
    enableProductionFeedback?: boolean | null | undefined;
    permissions?: UploadProjectAvatarPermissions | undefined;
    lastRollbackTarget?: UploadProjectAvatarLastRollbackTarget | null | undefined;
    lastAliasRequest?: UploadProjectAvatarLastAliasRequest | null | undefined;
    protectionBypass?: {
        [k: string]: UploadProjectAvatarProtectionBypass;
    } | undefined;
    hasActiveBranches?: boolean | undefined;
    trustedIps?: UploadProjectAvatarTrustedIps | null | undefined;
    trustedSources?: UploadProjectAvatarTrustedSources | null | undefined;
    gitComments?: UploadProjectAvatarGitComments | undefined;
    gitProviderOptions?: UploadProjectAvatarGitProviderOptions | undefined;
    paused?: boolean | undefined;
    concurrencyBucketName?: string | undefined;
    webAnalytics?: UploadProjectAvatarWebAnalytics | undefined;
    security?: UploadProjectAvatarSecurity | undefined;
    oidcTokenConfig?: UploadProjectAvatarOidcTokenConfig | undefined;
    /**
     * Project shape. `null` on a rule list clears the project's override for that rule type (fall back to team for every env); omitting is equivalent. Setting `deploymentPolicy` itself to `null` clears every override at once. Kept structurally distinct from {@link TeamDeploymentPolicy} so the two storage locations don't share a type by accident.
     */
    deploymentPolicy?: UploadProjectAvatarDeploymentPolicy | null | undefined;
    tier?: UploadProjectAvatarTier | undefined;
    usageStatus?: UploadProjectAvatarUsageStatus | undefined;
    features?: UploadProjectAvatarFeatures | undefined;
    v0?: boolean | undefined;
    v0Created?: boolean | undefined;
    abuse?: UploadProjectAvatarAbuse | undefined;
    internalRoutes?: Array<UploadProjectAvatarInternalRoutes1 | UploadProjectAvatarInternalRoutes2> | undefined;
    hasDeployments?: boolean | undefined;
    dismissedToasts?: Array<UploadProjectAvatarDismissedToasts> | undefined;
    protectedSourcemaps?: boolean | undefined;
    tracing?: UploadProjectAvatarTracing | undefined;
    avatar?: string | null | undefined;
};
/** @internal */
export declare const UploadProjectAvatarInternalRoutes$inboundSchema: z.ZodType<UploadProjectAvatarInternalRoutes, z.ZodTypeDef, unknown>;
export declare function uploadProjectAvatarInternalRoutesFromJSON(jsonString: string): SafeParseResult<UploadProjectAvatarInternalRoutes, SDKValidationError>;
/** @internal */
export declare const UploadProjectAvatarAction$inboundSchema: z.ZodNativeEnum<typeof UploadProjectAvatarAction>;
/** @internal */
export declare const UploadProjectAvatarValuePreviousValue$inboundSchema: z.ZodType<UploadProjectAvatarValuePreviousValue, z.ZodTypeDef, unknown>;
export declare function uploadProjectAvatarValuePreviousValueFromJSON(jsonString: string): SafeParseResult<UploadProjectAvatarValuePreviousValue, SDKValidationError>;
/** @internal */
export declare const UploadProjectAvatarValueCurrentValue$inboundSchema: z.ZodType<UploadProjectAvatarValueCurrentValue, z.ZodTypeDef, unknown>;
export declare function uploadProjectAvatarValueCurrentValueFromJSON(jsonString: string): SafeParseResult<UploadProjectAvatarValueCurrentValue, SDKValidationError>;
/** @internal */
export declare const UploadProjectAvatarValue3$inboundSchema: z.ZodType<UploadProjectAvatarValue3, z.ZodTypeDef, unknown>;
export declare function uploadProjectAvatarValue3FromJSON(jsonString: string): SafeParseResult<UploadProjectAvatarValue3, SDKValidationError>;
/** @internal */
export declare const UploadProjectAvatarValue$inboundSchema: z.ZodType<UploadProjectAvatarValue, z.ZodTypeDef, unknown>;
export declare function uploadProjectAvatarValueFromJSON(jsonString: string): SafeParseResult<UploadProjectAvatarValue, SDKValidationError>;
/** @internal */
export declare const UploadProjectAvatarDismissedToasts$inboundSchema: z.ZodType<UploadProjectAvatarDismissedToasts, z.ZodTypeDef, unknown>;
export declare function uploadProjectAvatarDismissedToastsFromJSON(jsonString: string): SafeParseResult<UploadProjectAvatarDismissedToasts, SDKValidationError>;
/** @internal */
export declare const UploadProjectAvatarProjectsEnv$inboundSchema: z.ZodNativeEnum<typeof UploadProjectAvatarProjectsEnv>;
/** @internal */
export declare const UploadProjectAvatarDestination$inboundSchema: z.ZodNativeEnum<typeof UploadProjectAvatarDestination>;
/** @internal */
export declare const UploadProjectAvatarSamplingRules$inboundSchema: z.ZodType<UploadProjectAvatarSamplingRules, z.ZodTypeDef, unknown>;
export declare function uploadProjectAvatarSamplingRulesFromJSON(jsonString: string): SafeParseResult<UploadProjectAvatarSamplingRules, SDKValidationError>;
/** @internal */
export declare const UploadProjectAvatarTracing$inboundSchema: z.ZodType<UploadProjectAvatarTracing, z.ZodTypeDef, unknown>;
export declare function uploadProjectAvatarTracingFromJSON(jsonString: string): SafeParseResult<UploadProjectAvatarTracing, SDKValidationError>;
/** @internal */
export declare const UploadProjectAvatarResponseBody$inboundSchema: z.ZodType<UploadProjectAvatarResponseBody, z.ZodTypeDef, unknown>;
export declare function uploadProjectAvatarResponseBodyFromJSON(jsonString: string): SafeParseResult<UploadProjectAvatarResponseBody, SDKValidationError>;
//# sourceMappingURL=uploadprojectavatarresponsebody.d.ts.map