import { CapturePendingParams, CapturePendingResponse, CheckoutParams, CheckoutResponse, CreditParams, CreditResponse, DebitParams, DebitResponse, GetTransactionChainResponse, GetTransactionResponse, ListTransactionsParams, ListTransactionsResponse, ReverseParams, ReverseResponse, TransferParams, TransferResponse, VoidPendingParams, VoidPendingResponse } from "./params";
import { Transaction } from "./model";
/**
 * See: https://apidocs.lightrail.com/#operation/Checkout
 *
 * Example:
 * ```js
 * const checkoutTx = await Lightrail.transactions.checkout({
 *    id: "abcdefg",
 *    currency: "USD",
 *    lineItems: [
 *        {
 *            productId: "pedals",
 *            unitPrice: 100000,
 *            taxRate: 0
 *        }
 *    ],
 *    sources: [
 *        {
 *            rail: "lightrail",
 *            code: "PROMOCODE"
 *        },
 *        {
 *            rail: "stripe",
 *            source: "tok_visa"
 *        }
 *    ]
 * );
 * ```
 */
export declare function checkout(params: CheckoutParams): Promise<CheckoutResponse>;
/**
 * See: https://apidocs.lightrail.com/#operation/Debit
 *
 * Example:
 * ```js
 * const debitTx = await Lightrail.transactions.debit({
 *    id: "abcdefg",
 *    currency: "USD",
 *    source: {
 *        rail: "lightrail",
 *        valueId: "hijklmnop"
 *    },
 *    amount: 1000
 * );
 * ```
 */
export declare function debit(params: DebitParams): Promise<DebitResponse>;
/**
 * See: https://apidocs.lightrail.com/#operation/Credit
 *
 * Example:
 * ```js
 * const creditTx = await Lightrail.transactions.credit({
 *    id: "abcdefg",
 *    currency: "USD",
 *    destination: {
 *        rail: "lightrail",
 *        valueId: "hijklmnop"
 *    },
 *    amount: 1000
 * );
 * ```
 */
export declare function credit(params: CreditParams): Promise<CreditResponse>;
/**
 * See: https://apidocs.lightrail.com/#operation/Transfer
 *
 * Example:
 * ```js
 * const transferTx = await Lightrail.transactions.transfer({
 *    id: "abcdefg",
 *    currency: "USD",
 *    source: {
 *        rail: "lightrail",
 *        valueId: "hijklmnop"
 *    },
 *    destination: {
 *        rail: "lightrail",
 *        valueId: "qrstuv"
 *    },
 *    amount: 1000
 * );
 * ```
 */
export declare function transfer(params: TransferParams): Promise<TransferResponse>;
/**
 * See: https://apidocs.lightrail.com/#operation/Reverse
 *
 * Example:
 * ```js
 * const reverseTx = await Lightrail.transactions.reverse("hijklmnop" {
 *    id: "abcdefg"  // This is the ID of the reverse transaction created.
 * );
 * ```
 */
export declare function reverse(transactionToReverse: string | Transaction, params: ReverseParams): Promise<ReverseResponse>;
/**
 * See: https://apidocs.lightrail.com/#operation/CapturePending
 *
 * Example:
 * ```js
 * const captureTx = await Lightrail.transactions.capturePending("hijklmnop" {
 *    id: "abcdefg"  // This is the ID of the capture transaction created.
 * );
 * ```
 */
export declare function capturePending(transactionToCapture: string | Transaction, params: CapturePendingParams): Promise<CapturePendingResponse>;
/**
 * See: https://apidocs.lightrail.com/#operation/VoidPending
 *
 * Example:
 * ```js
 * const voidTx = await Lightrail.transactions.voidPending("hijklmnop" {
 *    id: "abcdefg"  // This is the ID of the void transaction created.
 * );
 * ```
 */
export declare function voidPending(transactionToVoid: string | Transaction, params: VoidPendingParams): Promise<VoidPendingResponse>;
/**
 * See: https://apidocs.lightrail.com/#operation/ListTransactions
 *
 * Example:
 * ```js
 * const transactions = await Lightrail.transactions.listTransactions();
 * const transactionsLimited = await Lightrail.transactions.listTransactions({limit: 5});
 * ```
 */
export declare function listTransactions(params?: ListTransactionsParams): Promise<ListTransactionsResponse>;
/**
 * See: https://apidocs.lightrail.com/#operation/GetaTransaction
 *
 * Example:
 * ```js
 * const transaction = await Lightrail.transactions.getTransaction("abcdefg");
 * ```
 */
export declare function getTransaction(transaction: string | Transaction): Promise<GetTransactionResponse>;
/**
 * See: https://apidocs.lightrail.com/#operation/GetTransactionChain
 *
 * Example:
 * ```js
 * const transactions = await Lightrail.transactions.getTransactionChain("abcdefg");
 * ```
 */
export declare function getTransactionChain(transaction: string | Transaction): Promise<GetTransactionChainResponse>;
/**
 * @internal
 * Get transactionId from the string (as the ID itself) or Transaction object.
 */
export declare function getTransactionId(transaction: string | Transaction): string;
