import Customers from './resources/customers';
import Products from './resources/products';
import Invoices from './resources/invoices';
import Organizations from './resources/organizations';
import Catalogs from './tools/catalogs';
import Receipts from './resources/receipts';
import Retentions from './resources/retentions';
import Webhooks from './tools/webhooks';
import Tools from './tools/tools';
import * as enums from './enums';
export * from './enums';
export * from './types';
export type ApiVersion = 'v1' | 'v2';
export interface FacturapiOptions {
    apiVersion?: ApiVersion;
}
/**
 * Get an instance of the Facturapi library
 * @class
 * @param {string} apiKey Test or Live key.
 * @returns {Facturapi} Instance of this library
 */
export default class Facturapi {
    apiVersion: ApiVersion;
    customers: Customers;
    products: Products;
    invoices: Invoices;
    organizations: Organizations;
    catalogs: Catalogs;
    receipts: Receipts;
    retentions: Retentions;
    tools: Tools;
    webhooks: Webhooks;
    static get TaxType(): typeof enums.TaxType;
    static get TaxFactor(): typeof enums.TaxFactor;
    static get IepsMode(): typeof enums.IepsMode;
    static get PaymentForm(): typeof enums.PaymentForm;
    static get PaymentMethod(): typeof enums.PaymentMethod;
    static get InvoiceType(): typeof enums.InvoiceType;
    static get InvoiceUse(): typeof enums.InvoiceUse;
    static get InvoiceRelation(): typeof enums.InvoiceRelation;
    static get TaxSystem(): typeof enums.TaxSystem;
    static get InvoiceStatus(): typeof enums.InvoiceStatus;
    constructor(apiKey: string, options?: FacturapiOptions);
}
