import { base } from "../base";
import { extendedPreauthorization } from "../models/extendedPreauthorization";
import { transaction } from "../models/transaction";
import MethodOverload = base.MethodOverload;

export class ExtendedPreauthorizations {
    create: MethodOverload<extendedPreauthorization.CreateExtendedPreauthorization, extendedPreauthorization.ExtendedPreauthorizationData>;

    createPayPalPreauthorization: MethodOverload<extendedPreauthorization.CreatePayPalExtendedPreauthorization, extendedPreauthorization.ExtendedPreauthorizationData>;

    get: MethodOverload<string, extendedPreauthorization.ExtendedPreauthorizationData>;

    getAllForCard: MethodOverload<string, extendedPreauthorization.ExtendedPreauthorizationData[]>;

    getAllForUser: MethodOverload<string, extendedPreauthorization.ExtendedPreauthorizationData[]>;

    update: MethodOverload<extendedPreauthorization.UpdateExtendedPreauthorization, extendedPreauthorization.ExtendedPreauthorizationData>;

    getTransactions: MethodOverload<string, transaction.TransactionData[]>;
}
