@vansite/ts-sharetribe-flex-sdk
Version:
This is a TypeScript SDK for Sharetribe Flex API. It reduces the complexity of the API and provides a more user-friendly interface.
70 lines (69 loc) • 2.97 kB
TypeScript
/**
* @fileoverview Client for managing availability exceptions in the Sharetribe Marketplace API.
*
* Availability exceptions allow users to block or open specific time ranges on their listings,
* overriding the default availability plan (e.g. closing for holidays, maintenance, or personal use).
*
* @see https://www.sharetribe.com/api-reference/marketplace.html#availability-exceptions
*/
import type { AxiosResponse } from "axios";
import MarketplaceApi from "./index";
import { AvailabilityExceptionsCreateParameter, AvailabilityExceptionsDeleteParameter, AvailabilityExceptionsQueryParameter, AvailabilityExceptionsResponse, ExtraParameter } from "../../types";
/**
* Availability Exceptions API client (own listings only)
*/
declare class AvailabilityExceptions {
readonly authRequired = true;
private readonly axios;
private readonly endpoint;
private readonly headers;
constructor(api: MarketplaceApi);
/**
* Query your own availability exceptions
*
* @template P
* @param {P & AvailabilityExceptionsQueryParameter} params
* @returns {Promise<AxiosResponse<AvailabilityExceptionsResponse<"query", P>>>}
*
* @example
* const { data } = await sdk.availabilityExceptions.query({
* listingId: "listing-abc123",
* start: "2025-12-01",
* end: "2025-12-31"
* });
*/
query<P extends AvailabilityExceptionsQueryParameter>(params: P): Promise<AxiosResponse<AvailabilityExceptionsResponse<"query", P>>>;
/**
* Create a new availability exception (e.g. block dates)
*
* @template P
* @template EP
* @param {P & AvailabilityExceptionsCreateParameter} params
* @param {EP} [extraParams] - Optional extra parameters (e.g. `expand: true`)
* @returns {Promise<AxiosResponse<AvailabilityExceptionsResponse<"create", P, EP>>>}
*
* @example
* // Block Christmas day
* await sdk.availabilityExceptions.create({
* listingId: "listing-abc123",
* start: "2025-12-25T00:00:00Z",
* end: "2025-12-26T00:00:00Z",
* seats: 0
* });
*/
create<P extends AvailabilityExceptionsCreateParameter, EP extends ExtraParameter | undefined = undefined>(params: P, extraParams?: EP): Promise<AxiosResponse<AvailabilityExceptionsResponse<"create", P, EP>>>;
/**
* Delete an availability exception
*
* @template P
* @template EP
* @param {P & AvailabilityExceptionsDeleteParameter} params
* @param {EP} [extraParams]
* @returns {Promise<AxiosResponse<AvailabilityExceptionsResponse<"delete", P, EP>>>}
*
* @example
* await sdk.availabilityExceptions.delete({ id: "exc-456def" });
*/
delete<P extends AvailabilityExceptionsDeleteParameter, EP extends ExtraParameter | undefined = undefined>(params: P, extraParams?: EP): Promise<AxiosResponse<AvailabilityExceptionsResponse<"delete", P, EP>>>;
}
export default AvailabilityExceptions;