import type { RequestOverrides } from '../http.js';
import { type PagedResult } from '../pagination.js';
import type { CreateDebtParams, Expense, ExpenseCreateParams, ExpenseDeleteParams, ExpenseGetParams, ExpenseListParams, ExpenseRestoreParams, ExpenseUpdateParams } from '../types.js';
import { BaseResource } from './base.js';
export declare class Expenses extends BaseResource {
    list(params?: ExpenseListParams, overrides?: RequestOverrides): PagedResult<Expense>;
    get(params: ExpenseGetParams, overrides?: RequestOverrides): Promise<Expense>;
    create(params: ExpenseCreateParams, overrides?: RequestOverrides): Promise<Expense>;
    update(params: ExpenseUpdateParams, overrides?: RequestOverrides): Promise<Expense>;
    /**
     * Deletes an expense. Throws SplitwiseConstraintError if the API returns
     * `success: false` (e.g. you don't have permission). Returns nothing on
     * success -- the absence of an exception is the signal.
     */
    delete(params: ExpenseDeleteParams, overrides?: RequestOverrides): Promise<void>;
    /** Restores a previously-deleted expense. Throws on failure. */
    restore(params: ExpenseRestoreParams, overrides?: RequestOverrides): Promise<void>;
    /**
     * Convenience helper for "person A owes person B X amount" — wraps create()
     * with the right `users` shape so callers don't have to remember the
     * paid_share / owed_share dance.
     */
    createDebt(params: CreateDebtParams, overrides?: RequestOverrides): Promise<Expense>;
}
//# sourceMappingURL=expenses.d.ts.map