import { DownloadAssetAcceptEnum } from "../funcs/assetsDownloadAsset.js";
import { DownloadBackupAssetAcceptEnum } from "../funcs/assetsDownloadBackupAsset.js";
import { GenerateArchiveAcceptEnum } from "../funcs/assetsGenerateArchive.js";
import { ClientSDK, RequestOptions } from "../lib/sdks.js";
import * as components from "../models/components/index.js";
import * as operations from "../models/operations/index.js";
export { DownloadAssetAcceptEnum } from "../funcs/assetsDownloadAsset.js";
export { GenerateArchiveAcceptEnum } from "../funcs/assetsGenerateArchive.js";
export { DownloadBackupAssetAcceptEnum } from "../funcs/assetsDownloadBackupAsset.js";
export declare class Assets extends ClientSDK {
    /**
     * Updates an existing asset's identifier and optionally other metadata in your Cloudinary account
     */
    renameAsset(resourceType: operations.RenameAssetResourceType, requestBody: operations.RenameAssetRequestBody, options?: RequestOptions): Promise<components.UploadResponse>;
    /**
     * Generates a download link for a specific asset (image)
     */
    downloadAsset(resourceType: components.ResourceTypeParameter, publicId: string, apiKey: string, signature: string, timestamp: number, format?: string | undefined, type?: operations.DownloadAssetType | undefined, expiresAt?: number | undefined, attachment?: boolean | undefined, targetFilename?: string | undefined, transformation?: string | undefined, options?: RequestOptions & {
        acceptHeaderOverride?: DownloadAssetAcceptEnum;
    }): Promise<operations.DownloadAssetResponse>;
    /**
     * Apply operations on an existing asset
     *
     * @remarks
     * Applies actions such as transformations, tags, or metadata updates to an existing asset without re-uploading it.
     * This is useful for applying new transformations, adding tags, or updating metadata on assets that are already in your cloud.
     */
    explicitAsset(resourceType: operations.ExplicitAssetResourceType, requestBody: operations.ExplicitAssetRequestBody, options?: RequestOptions): Promise<components.UploadResponse>;
    /**
     * Creates an archive (ZIP or TGZ file) that contains a set of assets from
     *
     * @remarks
     * Creates a downloadable ZIP or other archive format containing the specified resources.
     */
    generateArchive(resourceType: operations.GenerateArchiveResourceType, requestBody: operations.GenerateArchiveRequestBody, options?: RequestOptions & {
        acceptHeaderOverride?: GenerateArchiveAcceptEnum;
    }): Promise<operations.GenerateArchiveResponse>;
    /**
     * Download a backup copy of an asset
     */
    downloadBackupAsset(assetId: string, versionId: string, apiKey: string, signature: string, timestamp: number, options?: RequestOptions & {
        acceptHeaderOverride?: DownloadBackupAssetAcceptEnum;
    }): Promise<operations.DownloadBackupAssetResponse>;
    /**
     * Delete asset by asset-id
     *
     * @remarks
     * Deletes an asset using its asset ID. This endpoint replaces the legacy /resources/by_asset_id endpoint.
     * Returns the deletion status and asset folder information when folder decoupling is enabled.
     */
    destroyByAssetId(request: components.DestroyRequest, options?: RequestOptions): Promise<components.DestroyResponse>;
    /**
     * Get resource types
     *
     * @remarks
     * Returns a list of all resource types that correspond to assets currently in your product environment.
     */
    listResourceTypes(request: operations.ListResourceTypesRequest, options?: RequestOptions): Promise<operations.ListResourceTypesResponse>;
    /**
     * Get image assets
     *
     * @remarks
     * Retrieves a list of image assets. Results can be filtered by various criteria like tags, moderation status, prefix, or specific public IDs.
     */
    listImages(type?: operations.ListImagesType | undefined, prefix?: string | undefined, publicIds?: Array<string> | undefined, tags?: boolean | undefined, nextCursor?: string | undefined, maxResults?: number | undefined, direction?: components.Direction | undefined, startAt?: Date | undefined, fields?: Array<components.FieldsSpec> | undefined, options?: RequestOptions): Promise<components.ListResponse>;
    /**
     * Get video assets
     *
     * @remarks
     * Retrieves a list of video assets. Results can be filtered by various criteria like tags, moderation status, prefix, or specific public IDs.
     */
    listVideos(type?: operations.ListVideosType | undefined, prefix?: string | undefined, publicIds?: Array<string> | undefined, tags?: boolean | undefined, nextCursor?: string | undefined, maxResults?: number | undefined, direction?: components.Direction | undefined, startAt?: Date | undefined, fields?: Array<components.FieldsSpec> | undefined, options?: RequestOptions): Promise<components.ListResponse>;
    /**
     * Get raw assets
     *
     * @remarks
     * Retrieves a list of raw assets. Results can be filtered by various criteria like tags, moderation status, prefix, or specific public IDs.
     */
    listRawFiles(type?: operations.ListRawFilesType | undefined, prefix?: string | undefined, publicIds?: Array<string> | undefined, tags?: boolean | undefined, nextCursor?: string | undefined, maxResults?: number | undefined, direction?: components.Direction | undefined, startAt?: Date | undefined, fields?: Array<components.FieldsSpec> | undefined, options?: RequestOptions): Promise<components.ListResponse>;
    /**
     * Get resources by asset folder
     *
     * @remarks
     * Retrieves a list of resources within a specific asset folder. Requires folder decoupling to be enabled.
     */
    listResourcesByAssetFolder(assetFolder: string, resourceType?: operations.ListResourcesByAssetFolderResourceType | undefined, nextCursor?: string | undefined, maxResults?: number | undefined, direction?: components.Direction | undefined, fields?: Array<components.FieldsSpec> | undefined, options?: RequestOptions): Promise<components.ListResponse>;
    /**
     * Get resources by asset IDs
     *
     * @remarks
     * Retrieves details for specific resources using their asset IDs (or external IDs).
     */
    listResourcesByAssetIDs(assetIds: Array<string>, resourceType?: operations.ListResourcesByAssetIDsResourceType | undefined, fields?: Array<components.FieldsSpec> | undefined, options?: RequestOptions): Promise<components.ListResponse>;
    /**
     * Get resources by context
     *
     * @remarks
     * Retrieves resources matching specific context key/value pairs.
     */
    listResourcesByContext(resourceType: components.ResourceTypeParameter, key: string, value?: string | undefined, nextCursor?: string | undefined, maxResults?: number | undefined, direction?: components.Direction | undefined, fields?: Array<components.FieldsSpec> | undefined, options?: RequestOptions): Promise<components.ListResponse>;
    /**
     * Get resources by moderation kind and status
     *
     * @remarks
     * Retrieves resources matching specific moderation kind and status.
     */
    listResourcesByModerationKindAndStatus(resourceType: components.ResourceTypeParameter, moderationKind: operations.ModerationKind, moderationStatus: operations.ModerationStatus, fields?: Array<components.FieldsSpec> | undefined, nextCursor?: string | undefined, maxResults?: number | undefined, direction?: components.Direction | undefined, options?: RequestOptions): Promise<components.ListResponse>;
    /**
     * Restore assets
     *
     * @remarks
     * Restores one or more resources from backup using their asset IDs. Can optionally specify versions to restore.
     */
    restoreResourcesByAssetIDs(request: operations.RestoreResourcesByAssetIDsRequest, options?: RequestOptions): Promise<{
        [k: string]: components.RestoreResponseUnion;
    }>;
    /**
     * Delete resources by public ID
     *
     * @remarks
     * Deletes assets uploaded to your product environment, identified by their public IDs.
     */
    deleteResourcesByPublicId(resourceType: components.ResourceTypeParameter, type: operations.DeleteResourcesByPublicIdType, deleteResourceByPublicIdsRequest: components.DeleteResourceByPublicIdsRequestUnion, options?: RequestOptions): Promise<operations.DeleteResourcesByPublicIdResponse>;
    /**
     * Get resource by public ID
     *
     * @remarks
     * Returns the details of a single resource specified by its public ID.
     */
    getResourceByPublicId(resourceType: components.ResourceTypeParameter, type: operations.GetResourceByPublicIdType, publicId: string, colors?: boolean | undefined, mediaMetadata?: boolean | undefined, faces?: boolean | undefined, qualityAnalysis?: boolean | undefined, accessibilityAnalysis?: boolean | undefined, pages?: boolean | undefined, phash?: boolean | undefined, coordinates?: boolean | undefined, versions?: boolean | undefined, maxResults?: number | undefined, derivedNextCursor?: string | undefined, options?: RequestOptions): Promise<components.Info>;
    /**
     * Update asset by public ID
     *
     * @remarks
     * Updates one or more attributes of a specified resource (asset) identified by its public ID. Note that you can also update many attributes of an existing asset using the explicit method, which is not rate limited.
     */
    updateResourceByPublicId(resourceType: components.ResourceTypeParameter, type: operations.UpdateResourceByPublicIdType, publicId: string, resourceUpdateRequest: components.ResourceUpdateRequest, options?: RequestOptions): Promise<components.Info>;
    /**
     * Get resource by asset ID
     *
     * @remarks
     * Returns the details of a single resource specified by its asset ID.
     */
    getResourceByAssetId(assetId: string, colors?: boolean | undefined, mediaMetadata?: boolean | undefined, faces?: boolean | undefined, qualityAnalysis?: boolean | undefined, accessibilityAnalysis?: boolean | undefined, pages?: boolean | undefined, phash?: boolean | undefined, coordinates?: boolean | undefined, versions?: boolean | undefined, maxResults?: number | undefined, derivedNextCursor?: string | undefined, options?: RequestOptions): Promise<components.Info>;
    /**
     * Updates an existing asset's metadata, tags, and other attributes using its asset ID
     *
     * @remarks
     * Updates one or more attributes of a specified resource (asset) by its asset ID. This enables you to update details of an asset by its unique and immutable identifier, regardless of public ID, display name, asset folder, resource type or deliver type. Note that you can also update many attributes of an existing asset using the explicit method, which is not rate-limited.
     */
    updateResourceByAssetId(assetId: string, resourceUpdateRequest: components.ResourceUpdateRequest, options?: RequestOptions): Promise<components.Info>;
    /**
     * Retrieves a list of tags currently applied to assets in your Cloudinary account
     *
     * @remarks
     * Retrieves a comprehensive list of all tags that exist in your product environment for assets of the specified type.
     *
     * [Cloudinary Admin API documentation](https://cloudinary.com/documentation/admin_api)
     */
    listResourceTags(resourceType: components.ResourceTypeParameter, prefix?: string | undefined, nextCursor?: string | undefined, maxResults?: number | undefined, options?: RequestOptions): Promise<operations.ListResourceTagsResponse>;
    /**
     * Delete backed up versions
     *
     * @remarks
     * Deletes specific backed up versions of an asset identified by asset ID.
     * This operation is irreversible and deleted versions cannot be recovered.
     */
    deleteBackupVersions(assetId: string, requestBody: operations.DeleteBackupVersionsRequestBody, options?: RequestOptions): Promise<operations.DeleteBackupVersionsResponse>;
    /**
     * Delete derived resources
     *
     * @remarks
     * Deletes derived resources by derived resource ID
     */
    derivedDestroy(request: components.DerivedDestroyRequest, options?: RequestOptions): Promise<components.DerivedDestroyResponse>;
}
//# sourceMappingURL=assets.d.ts.map