import { ClientSDK, RequestOptions } from "../lib/sdks.js";
import * as components from "../models/components/index.js";
import * as operations from "../models/operations/index.js";
export declare class AssetRelations extends ClientSDK {
    /**
     * Add related assets by asset ID
     *
     * @remarks
     * Relates an asset to other assets by their asset IDs, an immutable identifier, regardless of public ID, display name, asset folder, resource type or deliver type. This is a bidirectional process, meaning that the asset will also be added as a related_asset to all the other assets specified. The relation is also a one to many relationship, where the asset is related to all the assets specified, but those assets aren't also related to each other.
     */
    createAssetRelationsByAssetId(assetId: string, requestBody: operations.CreateAssetRelationsByAssetIdRequestBody, options?: RequestOptions): Promise<components.AssetRelationsResponse>;
    /**
     * Delete asset relations by asset ID
     *
     * @remarks
     * Unrelates the asset from other assets, specified by their asset IDs, an immutable identifier, regardless of public ID, display name, asset folder, resource type or deliver type. This is a bidirectional process, meaning that the asset will also be removed as a related_asset from all the other assets specified.
     */
    deleteAssetRelationsByAssetId(assetId: string, requestBody: operations.DeleteAssetRelationsByAssetIdRequestBody, options?: RequestOptions): Promise<components.AssetRelationsDeleteResponse>;
    /**
     * Create asset relations by public ID
     *
     * @remarks
     * Relates an asset to other assets by public IDs. This allows you to indicate that the asset is logically related to other assets in some way (e.g., similar content, or a peripheral asset like video/transcript, etc). This is a bidirectional process, meaning that the asset is also added as a related_asset to all the other assets specified. The relation is also a one to many relationship, where the asset is related to all the assets specified, but those assets aren't also related to each other.
     */
    createAssetRelationsByPublicId(resourceType: components.ResourceTypeParameter, type: operations.CreateAssetRelationsByPublicIdType | undefined, publicId: string, requestBody: operations.CreateAssetRelationsByPublicIdRequestBody, options?: RequestOptions): Promise<components.AssetRelationsResponse>;
    /**
     * Delete asset relations by public ID
     *
     * @remarks
     * Unrelates the asset from other assets, specified by public IDs. This is a bidirectional process, meaning that the asset will also be removed as a related_asset from all the other assets specified.
     */
    deleteAssetRelationsByPublicId(resourceType: components.ResourceTypeParameter, type: operations.DeleteAssetRelationsByPublicIdType | undefined, publicId: string, requestBody: operations.DeleteAssetRelationsByPublicIdRequestBody, options?: RequestOptions): Promise<components.AssetRelationsDeleteResponse>;
}
//# sourceMappingURL=assetrelations.d.ts.map