import * as z from "zod";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
/**
 * The status of the asynchronous upload. Will be 'pending' for async uploads.
 */
export declare const AsyncUploadResponseStatus: {
    readonly Pending: "pending";
};
/**
 * The status of the asynchronous upload. Will be 'pending' for async uploads.
 */
export type AsyncUploadResponseStatus = ClosedEnum<typeof AsyncUploadResponseStatus>;
/**
 * The type of resource being uploaded. This field may be omitted if resource_type is not known at the time of the call.
 */
export declare const AsyncUploadResponseResourceType: {
    readonly Image: "image";
    readonly Video: "video";
    readonly Raw: "raw";
};
/**
 * The type of resource being uploaded. This field may be omitted if resource_type is not known at the time of the call.
 */
export type AsyncUploadResponseResourceType = ClosedEnum<typeof AsyncUploadResponseResourceType>;
/**
 * The storage type of the asset. Defaults to 'upload'.
 */
export declare const AsyncUploadResponseType: {
    readonly Upload: "upload";
    readonly Private: "private";
    readonly Authenticated: "authenticated";
};
/**
 * The storage type of the asset. Defaults to 'upload'.
 */
export type AsyncUploadResponseType = ClosedEnum<typeof AsyncUploadResponseType>;
/**
 * Response returned when an upload is processed asynchronously (async=true)
 */
export type AsyncUploadResponse = {
    /**
     * The status of the asynchronous upload. Will be 'pending' for async uploads.
     */
    status: AsyncUploadResponseStatus;
    /**
     * The type of resource being uploaded. This field may be omitted if resource_type is not known at the time of the call.
     */
    resourceType?: AsyncUploadResponseResourceType | undefined;
    /**
     * The storage type of the asset. Defaults to 'upload'.
     */
    type?: AsyncUploadResponseType | undefined;
    /**
     * The public ID assigned to the upload. May be omitted if it will be auto-generated.
     */
    publicId?: string | undefined;
    /**
     * A unique identifier for the asynchronous upload job.
     */
    batchId: string;
    /**
     * The IP address of the requester. This is only included if a product environment has requester_ip tracking enabled.
     */
    requesterIp?: string | undefined;
};
/** @internal */
export declare const AsyncUploadResponseStatus$inboundSchema: z.ZodNativeEnum<typeof AsyncUploadResponseStatus>;
/** @internal */
export declare const AsyncUploadResponseStatus$outboundSchema: z.ZodNativeEnum<typeof AsyncUploadResponseStatus>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AsyncUploadResponseStatus$ {
    /** @deprecated use `AsyncUploadResponseStatus$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Pending: "pending";
    }>;
    /** @deprecated use `AsyncUploadResponseStatus$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Pending: "pending";
    }>;
}
/** @internal */
export declare const AsyncUploadResponseResourceType$inboundSchema: z.ZodNativeEnum<typeof AsyncUploadResponseResourceType>;
/** @internal */
export declare const AsyncUploadResponseResourceType$outboundSchema: z.ZodNativeEnum<typeof AsyncUploadResponseResourceType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AsyncUploadResponseResourceType$ {
    /** @deprecated use `AsyncUploadResponseResourceType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Image: "image";
        readonly Video: "video";
        readonly Raw: "raw";
    }>;
    /** @deprecated use `AsyncUploadResponseResourceType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Image: "image";
        readonly Video: "video";
        readonly Raw: "raw";
    }>;
}
/** @internal */
export declare const AsyncUploadResponseType$inboundSchema: z.ZodNativeEnum<typeof AsyncUploadResponseType>;
/** @internal */
export declare const AsyncUploadResponseType$outboundSchema: z.ZodNativeEnum<typeof AsyncUploadResponseType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AsyncUploadResponseType$ {
    /** @deprecated use `AsyncUploadResponseType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Upload: "upload";
        readonly Private: "private";
        readonly Authenticated: "authenticated";
    }>;
    /** @deprecated use `AsyncUploadResponseType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Upload: "upload";
        readonly Private: "private";
        readonly Authenticated: "authenticated";
    }>;
}
/** @internal */
export declare const AsyncUploadResponse$inboundSchema: z.ZodType<AsyncUploadResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type AsyncUploadResponse$Outbound = {
    status: string;
    resource_type?: string | undefined;
    type: string;
    public_id?: string | undefined;
    batch_id: string;
    requester_ip?: string | undefined;
};
/** @internal */
export declare const AsyncUploadResponse$outboundSchema: z.ZodType<AsyncUploadResponse$Outbound, z.ZodTypeDef, AsyncUploadResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace AsyncUploadResponse$ {
    /** @deprecated use `AsyncUploadResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<AsyncUploadResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `AsyncUploadResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<AsyncUploadResponse$Outbound, z.ZodTypeDef, AsyncUploadResponse>;
    /** @deprecated use `AsyncUploadResponse$Outbound` instead. */
    type Outbound = AsyncUploadResponse$Outbound;
}
export declare function asyncUploadResponseToJSON(asyncUploadResponse: AsyncUploadResponse): string;
export declare function asyncUploadResponseFromJSON(jsonString: string): SafeParseResult<AsyncUploadResponse, SDKValidationError>;
//# sourceMappingURL=asyncuploadresponse.d.ts.map