import type { IUserRequestOptions } from "@esri/arcgis-rest-request";
/**
 * Given an item, and owner, Search for if the resource exists
 * and if does, update it, otherwise add it. Returns a url for the item.
 *
 * Note that layout resources are typically stored with
 * - a "layout/" prefix (so we can find them)
 * - a name that starts with the cardId
 * - and a -{timestamp} suffix (to bust the cache)
 * thus 'update' is not really an update, it is:
 * - upload the new one
 * - then find the old one (which has a different suffix) and delete it.
 *
 * this is why we cannot simply use upsertResource
 
 *
 * @export
 * @param {string} id
 * @param {string} owner
 * @param {*} resource
 * @param {string} name
 * @param {string} extension
 * @param {IUserRequestOptions} ro
 * @return {*}  {Promise<string>}
 */
export declare function upsertLayoutResource(id: string, owner: string, resource: unknown, name: string, extension: string, ro: IUserRequestOptions): Promise<string>;
