/**
 * @fileoverview Client for uploading images in the Sharetribe Marketplace API.
 *
 * Use this to upload images for listings, user profiles, or other resources.
 * Returns an image resource with variants ready for responsive display.
 *
 * @see https://www.sharetribe.com/api-reference/marketplace.html#images
 */
import type { AxiosResponse } from "axios";
import MarketplaceApi from "./index";
import { ExtraParameter, ImagesResponse, ImagesUploadParameter } from "../../types";
/**
 * Images API client
 */
declare class Images {
    readonly authRequired = true;
    private readonly axios;
    private readonly endpoint;
    private readonly headers;
    constructor(api: MarketplaceApi);
    /**
     * Upload an image
     *
     * @template P
     * @template EP
     * @param {P & ImagesUploadParameter} params - Must include `image: File`
     * @param {EP} [extraParams] - Optional extra parameters (e.g. `expand: true`)
     * @returns {Promise<AxiosResponse<ImagesResponse<"upload", EP>>>}
     *
     * @example
     * const file = inputElement.files[0];
     * const { data } = await sdk.images.upload({ image: file });
     * console.log(data.id); // → "img-abc123"
     * console.log(data.attributes.variants["square-small"]?.url);
     */
    upload<P extends ImagesUploadParameter, EP extends ExtraParameter | undefined = undefined>(params: P, extraParams?: EP): Promise<AxiosResponse<ImagesResponse<"upload", EP>>>;
}
export default Images;
