import * as z from "zod";
import { ClosedEnum } from "../../types/enums.js";
import { Result as SafeParseResult } from "../../types/fp.js";
import * as components from "../components/index.js";
import { SDKValidationError } from "../errors/sdkvalidationerror.js";
export type DownloadAssetGlobals = {
    /**
     * The cloud name of your product environment.
     */
    cloudName?: string | undefined;
};
/**
 * The storage type of the asset. Defaults to 'upload'.
 */
export declare const DownloadAssetType: {
    readonly Upload: "upload";
    readonly Private: "private";
    readonly Authenticated: "authenticated";
};
/**
 * The storage type of the asset. Defaults to 'upload'.
 */
export type DownloadAssetType = ClosedEnum<typeof DownloadAssetType>;
export type DownloadAssetRequest = {
    /**
     * The type the of asset.
     */
    resourceType: components.ResourceTypeParameter;
    /**
     * The public ID of the asset to download.
     */
    publicId: string;
    /**
     * The format to convert the asset to before downloading.
     */
    format?: string | undefined;
    /**
     * The storage type of the asset. Defaults to 'upload'.
     */
    type?: DownloadAssetType | undefined;
    /**
     * Unix timestamp indicating when the download URL should expire.
     */
    expiresAt?: number | undefined;
    /**
     * Whether to force download as an attachment.
     */
    attachment?: boolean | undefined;
    /**
     * The desired filename for the downloaded file.
     */
    targetFilename?: string | undefined;
    /**
     * A transformation to apply to the asset before downloading.
     */
    transformation?: string | undefined;
    apiKey: string;
    signature: string;
    timestamp: number;
};
export type DownloadAssetResponse = ReadableStream<Uint8Array> | ReadableStream<Uint8Array> | ReadableStream<Uint8Array>;
/** @internal */
export declare const DownloadAssetGlobals$inboundSchema: z.ZodType<DownloadAssetGlobals, z.ZodTypeDef, unknown>;
/** @internal */
export type DownloadAssetGlobals$Outbound = {
    cloud_name?: string | undefined;
};
/** @internal */
export declare const DownloadAssetGlobals$outboundSchema: z.ZodType<DownloadAssetGlobals$Outbound, z.ZodTypeDef, DownloadAssetGlobals>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace DownloadAssetGlobals$ {
    /** @deprecated use `DownloadAssetGlobals$inboundSchema` instead. */
    const inboundSchema: z.ZodType<DownloadAssetGlobals, z.ZodTypeDef, unknown>;
    /** @deprecated use `DownloadAssetGlobals$outboundSchema` instead. */
    const outboundSchema: z.ZodType<DownloadAssetGlobals$Outbound, z.ZodTypeDef, DownloadAssetGlobals>;
    /** @deprecated use `DownloadAssetGlobals$Outbound` instead. */
    type Outbound = DownloadAssetGlobals$Outbound;
}
export declare function downloadAssetGlobalsToJSON(downloadAssetGlobals: DownloadAssetGlobals): string;
export declare function downloadAssetGlobalsFromJSON(jsonString: string): SafeParseResult<DownloadAssetGlobals, SDKValidationError>;
/** @internal */
export declare const DownloadAssetType$inboundSchema: z.ZodNativeEnum<typeof DownloadAssetType>;
/** @internal */
export declare const DownloadAssetType$outboundSchema: z.ZodNativeEnum<typeof DownloadAssetType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace DownloadAssetType$ {
    /** @deprecated use `DownloadAssetType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Upload: "upload";
        readonly Private: "private";
        readonly Authenticated: "authenticated";
    }>;
    /** @deprecated use `DownloadAssetType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Upload: "upload";
        readonly Private: "private";
        readonly Authenticated: "authenticated";
    }>;
}
/** @internal */
export declare const DownloadAssetRequest$inboundSchema: z.ZodType<DownloadAssetRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type DownloadAssetRequest$Outbound = {
    resource_type: string;
    public_id: string;
    format?: string | undefined;
    type: string;
    expires_at?: number | undefined;
    attachment: boolean;
    target_filename?: string | undefined;
    transformation?: string | undefined;
    api_key: string;
    signature: string;
    timestamp: number;
};
/** @internal */
export declare const DownloadAssetRequest$outboundSchema: z.ZodType<DownloadAssetRequest$Outbound, z.ZodTypeDef, DownloadAssetRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace DownloadAssetRequest$ {
    /** @deprecated use `DownloadAssetRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<DownloadAssetRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `DownloadAssetRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<DownloadAssetRequest$Outbound, z.ZodTypeDef, DownloadAssetRequest>;
    /** @deprecated use `DownloadAssetRequest$Outbound` instead. */
    type Outbound = DownloadAssetRequest$Outbound;
}
export declare function downloadAssetRequestToJSON(downloadAssetRequest: DownloadAssetRequest): string;
export declare function downloadAssetRequestFromJSON(jsonString: string): SafeParseResult<DownloadAssetRequest, SDKValidationError>;
/** @internal */
export declare const DownloadAssetResponse$inboundSchema: z.ZodType<DownloadAssetResponse, z.ZodTypeDef, unknown>;
/** @internal */
export type DownloadAssetResponse$Outbound = ReadableStream<Uint8Array> | ReadableStream<Uint8Array> | ReadableStream<Uint8Array>;
/** @internal */
export declare const DownloadAssetResponse$outboundSchema: z.ZodType<DownloadAssetResponse$Outbound, z.ZodTypeDef, DownloadAssetResponse>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace DownloadAssetResponse$ {
    /** @deprecated use `DownloadAssetResponse$inboundSchema` instead. */
    const inboundSchema: z.ZodType<DownloadAssetResponse, z.ZodTypeDef, unknown>;
    /** @deprecated use `DownloadAssetResponse$outboundSchema` instead. */
    const outboundSchema: z.ZodType<DownloadAssetResponse$Outbound, z.ZodTypeDef, DownloadAssetResponse>;
    /** @deprecated use `DownloadAssetResponse$Outbound` instead. */
    type Outbound = DownloadAssetResponse$Outbound;
}
export declare function downloadAssetResponseToJSON(downloadAssetResponse: DownloadAssetResponse): string;
export declare function downloadAssetResponseFromJSON(jsonString: string): SafeParseResult<DownloadAssetResponse, SDKValidationError>;
//# sourceMappingURL=downloadasset.d.ts.map