/// <reference types="node" />
import { IConfig, ICredentials, PaymentMethodInstance, ServiceCode } from './Utils';
import { HttpsClient, Request } from './Request';
import { Agent } from 'https';
import NoService from './PaymentMethods/NoService';
import { TransactionService } from './Services';
export default class Buckaroo {
    private static _client;
    private readonly _credentials;
    private readonly _httpClient;
    private _config;
    constructor(credentials: ICredentials, config?: IConfig, agent?: Agent);
    static get Client(): Buckaroo;
    get config(): IConfig;
    set config(value: IConfig);
    get credentials(): ICredentials;
    get httpClient(): HttpsClient;
    get batch(): {
        transaction: typeof Request.BatchTransaction;
        data: typeof Request.BatchDataRequest;
    };
    static InitializeClient(credentials: ICredentials, config?: IConfig, agent?: Agent): Buckaroo;
    method(): NoService;
    method<Name extends ServiceCode>(name: Name): PaymentMethodInstance<Name>;
    confirmCredentials(): Promise<boolean>;
    transaction(key: string): TransactionService;
    getActiveSubscriptions(): Promise<import("./Services/ActiveSubscriptions").IActiveSubscription[]>;
}
export { Buckaroo };
