/**
 * @fileoverview Client for managing availability exceptions in the Sharetribe Integration API.
 *
 * Availability exceptions override default availability rules for specific time ranges
 * (e.g. blocking off dates for maintenance or special events).
 *
 * @see https://www.sharetribe.com/api-reference/integration.html#availability-exceptions
 */
import type { AxiosResponse } from "axios";
import IntegrationApi from "./index";
import { AvailabilityExceptionsCreateParameter, AvailabilityExceptionsDeleteParameter, AvailabilityExceptionsQueryParameter, AvailabilityExceptionsResponse, ExtraParameter } from "../../types";
/**
 * Availability exceptions API client
 */
declare class AvailabilityExceptions {
    readonly authRequired = true;
    private readonly axios;
    private readonly endpoint;
    private readonly headers;
    constructor(api: IntegrationApi);
    /**
     * Query availability exceptions
     *
     * @template P
     * @param {P & AvailabilityExceptionsQueryParameter} params
     * @returns {Promise<AxiosResponse<AvailabilityExceptionsResponse<"query", P>>>}
     *
     * @example
     * const { data } = await sdk.availabilityExceptions.query({
     *   listingId: "123-abc",
     *   start: "2025-01-01",
     *   end: "2025-01-31"
     * });
     */
    query<P extends AvailabilityExceptionsQueryParameter>(params: P): Promise<AxiosResponse<AvailabilityExceptionsResponse<"query", P>>>;
    /**
     * Create a new availability exception
     *
     * @template P
     * @template EP
     * @param {P & AvailabilityExceptionsCreateParameter} params
     * @param {EP} [extraParams] - Optional extra parameters (e.g. expand)
     * @returns {Promise<AxiosResponse<AvailabilityExceptionsResponse<"create", P, EP>>>}
     *
     * @example
     * await sdk.availabilityExceptions.create({
     *   listingId: "123-abc",
     *   start: "2025-12-24",
     *   end: "2025-12-26",
     *   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
     * @param {P & AvailabilityExceptionsDeleteParameter} params
     * @returns {Promise<AxiosResponse<AvailabilityExceptionsResponse<"delete", P>>>}
     *
     * @example
     * await sdk.availabilityExceptions.delete({ id: "exc-456-def" });
     */
    delete<P extends AvailabilityExceptionsDeleteParameter>(params: P): Promise<AxiosResponse<AvailabilityExceptionsResponse<"delete", P>>>;
}
export default AvailabilityExceptions;
//# sourceMappingURL=AvailabilityExceptions.d.ts.map