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";
export type RenameAssetGlobals = {
    /**
     * The cloud name of your product environment.
     */
    cloudName?: string | undefined;
};
/**
 * The type of resource to rename. "image", "video", or "raw".
 */
export declare const RenameAssetResourceType: {
    readonly Image: "image";
    readonly Video: "video";
    readonly Raw: "raw";
};
/**
 * The type of resource to rename. "image", "video", or "raw".
 */
export type RenameAssetResourceType = ClosedEnum<typeof RenameAssetResourceType>;
/**
 * The storage type of the asset. Defaults to 'upload'.
 */
export declare const RenameAssetType: {
    readonly Upload: "upload";
    readonly Private: "private";
    readonly Authenticated: "authenticated";
};
/**
 * The storage type of the asset. Defaults to 'upload'.
 */
export type RenameAssetType = ClosedEnum<typeof RenameAssetType>;
/**
 * The new storage type for the asset.
 */
export declare const ToType: {
    readonly Upload: "upload";
    readonly Private: "private";
    readonly Authenticated: "authenticated";
};
/**
 * The new storage type for the asset.
 */
export type ToType = ClosedEnum<typeof ToType>;
export type RenameAssetRequestBody = {
    /**
     * (Required for signed REST API calls) Used to authenticate the request and based on the parameters you use in the request. When using the Cloudinary SDKs for signed requests, the signature is automatically generated and added to the request. If you manually generate your own signed POST request, you need to manually generate the signature parameter and add it to the request together with the api_key and timestamp parameters.
     *
     * @remarks
     */
    signature?: string | undefined;
    /**
     * The timestamp to use for the request in unix time. This is automatically computed by the Cloudinary's SDKs.
     */
    timestamp?: number | undefined;
    /**
     * The API key to use for the request. This is automatically computed by the Cloudinary's SDKs.
     */
    apiKey?: string | undefined;
    /**
     * The public ID of the asset to rename.
     */
    fromPublicId: string;
    /**
     * The new public ID for the asset.
     */
    toPublicId: string;
    /**
     * The storage type of the asset. Defaults to 'upload'.
     */
    type?: RenameAssetType | undefined;
    /**
     * The new storage type for the asset.
     */
    toType?: ToType | undefined;
    /**
     * Whether to overwrite the target asset if it already exists.
     */
    overwrite?: boolean | undefined;
    /**
     * Whether to invalidate the CDN cache for the renamed asset.
     */
    invalidate?: boolean | undefined;
    /**
     * Context metadata to update during rename.
     */
    context?: string | undefined;
    /**
     * Structured metadata to update during rename.
     */
    metadata?: string | undefined;
    /**
     * URL to notify when the operation is complete.
     */
    notificationUrl?: string | undefined;
};
export type RenameAssetRequest = {
    /**
     * The type of resource to rename. "image", "video", or "raw".
     */
    resourceType: RenameAssetResourceType;
    requestBody: RenameAssetRequestBody;
};
/** @internal */
export declare const RenameAssetGlobals$inboundSchema: z.ZodType<RenameAssetGlobals, z.ZodTypeDef, unknown>;
/** @internal */
export type RenameAssetGlobals$Outbound = {
    cloud_name?: string | undefined;
};
/** @internal */
export declare const RenameAssetGlobals$outboundSchema: z.ZodType<RenameAssetGlobals$Outbound, z.ZodTypeDef, RenameAssetGlobals>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace RenameAssetGlobals$ {
    /** @deprecated use `RenameAssetGlobals$inboundSchema` instead. */
    const inboundSchema: z.ZodType<RenameAssetGlobals, z.ZodTypeDef, unknown>;
    /** @deprecated use `RenameAssetGlobals$outboundSchema` instead. */
    const outboundSchema: z.ZodType<RenameAssetGlobals$Outbound, z.ZodTypeDef, RenameAssetGlobals>;
    /** @deprecated use `RenameAssetGlobals$Outbound` instead. */
    type Outbound = RenameAssetGlobals$Outbound;
}
export declare function renameAssetGlobalsToJSON(renameAssetGlobals: RenameAssetGlobals): string;
export declare function renameAssetGlobalsFromJSON(jsonString: string): SafeParseResult<RenameAssetGlobals, SDKValidationError>;
/** @internal */
export declare const RenameAssetResourceType$inboundSchema: z.ZodNativeEnum<typeof RenameAssetResourceType>;
/** @internal */
export declare const RenameAssetResourceType$outboundSchema: z.ZodNativeEnum<typeof RenameAssetResourceType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace RenameAssetResourceType$ {
    /** @deprecated use `RenameAssetResourceType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Image: "image";
        readonly Video: "video";
        readonly Raw: "raw";
    }>;
    /** @deprecated use `RenameAssetResourceType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Image: "image";
        readonly Video: "video";
        readonly Raw: "raw";
    }>;
}
/** @internal */
export declare const RenameAssetType$inboundSchema: z.ZodNativeEnum<typeof RenameAssetType>;
/** @internal */
export declare const RenameAssetType$outboundSchema: z.ZodNativeEnum<typeof RenameAssetType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace RenameAssetType$ {
    /** @deprecated use `RenameAssetType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Upload: "upload";
        readonly Private: "private";
        readonly Authenticated: "authenticated";
    }>;
    /** @deprecated use `RenameAssetType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Upload: "upload";
        readonly Private: "private";
        readonly Authenticated: "authenticated";
    }>;
}
/** @internal */
export declare const ToType$inboundSchema: z.ZodNativeEnum<typeof ToType>;
/** @internal */
export declare const ToType$outboundSchema: z.ZodNativeEnum<typeof ToType>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace ToType$ {
    /** @deprecated use `ToType$inboundSchema` instead. */
    const inboundSchema: z.ZodNativeEnum<{
        readonly Upload: "upload";
        readonly Private: "private";
        readonly Authenticated: "authenticated";
    }>;
    /** @deprecated use `ToType$outboundSchema` instead. */
    const outboundSchema: z.ZodNativeEnum<{
        readonly Upload: "upload";
        readonly Private: "private";
        readonly Authenticated: "authenticated";
    }>;
}
/** @internal */
export declare const RenameAssetRequestBody$inboundSchema: z.ZodType<RenameAssetRequestBody, z.ZodTypeDef, unknown>;
/** @internal */
export type RenameAssetRequestBody$Outbound = {
    signature?: string | undefined;
    timestamp?: number | undefined;
    api_key?: string | undefined;
    from_public_id: string;
    to_public_id: string;
    type?: string | undefined;
    to_type?: string | undefined;
    overwrite?: boolean | undefined;
    invalidate?: boolean | undefined;
    context?: string | undefined;
    metadata?: string | undefined;
    notification_url?: string | undefined;
};
/** @internal */
export declare const RenameAssetRequestBody$outboundSchema: z.ZodType<RenameAssetRequestBody$Outbound, z.ZodTypeDef, RenameAssetRequestBody>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace RenameAssetRequestBody$ {
    /** @deprecated use `RenameAssetRequestBody$inboundSchema` instead. */
    const inboundSchema: z.ZodType<RenameAssetRequestBody, z.ZodTypeDef, unknown>;
    /** @deprecated use `RenameAssetRequestBody$outboundSchema` instead. */
    const outboundSchema: z.ZodType<RenameAssetRequestBody$Outbound, z.ZodTypeDef, RenameAssetRequestBody>;
    /** @deprecated use `RenameAssetRequestBody$Outbound` instead. */
    type Outbound = RenameAssetRequestBody$Outbound;
}
export declare function renameAssetRequestBodyToJSON(renameAssetRequestBody: RenameAssetRequestBody): string;
export declare function renameAssetRequestBodyFromJSON(jsonString: string): SafeParseResult<RenameAssetRequestBody, SDKValidationError>;
/** @internal */
export declare const RenameAssetRequest$inboundSchema: z.ZodType<RenameAssetRequest, z.ZodTypeDef, unknown>;
/** @internal */
export type RenameAssetRequest$Outbound = {
    resource_type: string;
    RequestBody: RenameAssetRequestBody$Outbound;
};
/** @internal */
export declare const RenameAssetRequest$outboundSchema: z.ZodType<RenameAssetRequest$Outbound, z.ZodTypeDef, RenameAssetRequest>;
/**
 * @internal
 * @deprecated This namespace will be removed in future versions. Use schemas and types that are exported directly from this module.
 */
export declare namespace RenameAssetRequest$ {
    /** @deprecated use `RenameAssetRequest$inboundSchema` instead. */
    const inboundSchema: z.ZodType<RenameAssetRequest, z.ZodTypeDef, unknown>;
    /** @deprecated use `RenameAssetRequest$outboundSchema` instead. */
    const outboundSchema: z.ZodType<RenameAssetRequest$Outbound, z.ZodTypeDef, RenameAssetRequest>;
    /** @deprecated use `RenameAssetRequest$Outbound` instead. */
    type Outbound = RenameAssetRequest$Outbound;
}
export declare function renameAssetRequestToJSON(renameAssetRequest: RenameAssetRequest): string;
export declare function renameAssetRequestFromJSON(jsonString: string): SafeParseResult<RenameAssetRequest, SDKValidationError>;
//# sourceMappingURL=renameasset.d.ts.map