/**
 * @fileoverview Client for managing transactions in the Sharetribe Marketplace API.
 *
 * Use this to:
 * - Query your own transactions
 * - Initiate new orders/inquiries
 * - Transition transactions (accept, complete, cancel, etc.)
 * - Perform speculative transitions (dry-run)
 *
 * All operations require authentication.
 *
 * @see https://www.sharetribe.com/api-reference/marketplace.html#transactions
 */
import type { AxiosResponse } from "axios";
import MarketplaceApi from "./index";
import { ExtraParameter, TransactionsInitiateParameter, TransactionsInitiateSpeculativeParameter, TransactionsQueryParameter, TransactionsResponse, TransactionsShowParameter, TransactionsTransitionParameter, TransactionsTransitionSpeculativeParameter } from "../../types";
/**
 * Transactions API client (current user)
 */
declare class Transactions {
    readonly authRequired = true;
    private readonly axios;
    private readonly endpoint;
    private readonly headers;
    constructor(api: MarketplaceApi);
    /**
     * Fetch a single transaction by ID
     *
     * @template P
     * @param {P & TransactionsShowParameter} params
     * @returns {Promise<AxiosResponse<TransactionsResponse<"show", P>>>}
     */
    show<P extends TransactionsShowParameter>(params: P): Promise<AxiosResponse<TransactionsResponse<"show", P, {
        expand: true;
    }>>>;
    /**
     * Query your own transactions
     *
     * @template P
     * @param {P & TransactionsQueryParameter} params
     * @returns {Promise<AxiosResponse<TransactionsResponse<"query", P>>>}
     */
    query<P extends TransactionsQueryParameter>(params?: P): Promise<AxiosResponse<TransactionsResponse<"query", P>>>;
    /**
     * Initiate a new transaction (e.g. place an order)
     *
     * @template P
     * @template EP
     * @param {P & TransactionsInitiateParameter} params
     * @param {EP} [extraParams]
     * @returns {Promise<AxiosResponse<TransactionsResponse<"initiate", P, EP>>>}
     */
    initiate<P extends TransactionsInitiateParameter, EP extends ExtraParameter | undefined = undefined>(params: P, extraParams?: EP): Promise<AxiosResponse<TransactionsResponse<"initiate", P, EP>>>;
    /**
     * Initiate a transaction speculatively (dry-run)
     *
     * @template P
     * @template EP
     * @param {P & TransactionsInitiateSpeculativeParameter} params
     * @param {EP} [extraParams]
     * @returns {Promise<AxiosResponse<TransactionsResponse<"initiateSpeculative", P, EP>>>}
     */
    initiateSpeculative<P extends TransactionsInitiateSpeculativeParameter, EP extends ExtraParameter | undefined = undefined>(params: P, extraParams?: EP): Promise<AxiosResponse<TransactionsResponse<"initiateSpeculative", P, EP>>>;
    /**
     * Transition a transaction to a new state
     *
     * @template P
     * @template EP
     * @param {P & TransactionsTransitionParameter} params
     * @param {EP} [extraParams]
     * @returns {Promise<AxiosResponse<TransactionsResponse<"transition", P, EP>>>}
     *
     * @example
     * await sdk.transactions.transition({
     *   id: "tx-abc123",
     *   transition: "transition/confirm-payment"
     * });
     */
    transition<P extends TransactionsTransitionParameter, EP extends ExtraParameter | undefined = undefined>(params: P, extraParams?: EP): Promise<AxiosResponse<TransactionsResponse<"transition", P, EP>>>;
    /**
     * Perform a speculative transition (dry-run)
     *
     * @template P
     * @template EP
     * @param {P & TransactionsTransitionSpeculativeParameter} params
     * @param {EP} [extraParams]
     * @returns {Promise<AxiosResponse<TransactionsResponse<"transitionSpeculative", P, EP>>>}
     */
    transitionSpeculative<P extends TransactionsTransitionSpeculativeParameter, EP extends ExtraParameter | undefined = undefined>(params: P, extraParams?: EP): Promise<AxiosResponse<TransactionsResponse<"transitionSpeculative", P, EP>>>;
}
export default Transactions;
