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';
import CartaPorteCatalogs from './tools/cartaPorteCatalogs';
import ComercioExteriorCatalogs from './tools/comercioExteriorCatalogs';
export * from './enums';
export * from './types';
export { FacturapiError } from './wrapper';
export type { FacturapiErrorDetail } from './wrapper';
export type ApiVersion = 'v1' | 'v2';
export interface FacturapiOptions {
    apiVersion?: ApiVersion;
    headers?: Record<string, string>;
}
/**
 * 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;
    private _wrapper;
    customers: Customers;
    products: Products;
    invoices: Invoices;
    organizations: Organizations;
    catalogs: Catalogs;
    cartaPorteCatalogs: CartaPorteCatalogs;
    comercioExteriorCatalogs: ComercioExteriorCatalogs;
    receipts: Receipts;
    retentions: Retentions;
    tools: Tools;
    webhooks: Webhooks;
    /**
     * Get or set the base URL used for API requests.
     * Allows overriding the default API host, e.g. for testing.
     * Usage: facturapi.BASE_URL = 'http://localhost:3000/v2'
     */
    get BASE_URL(): string;
    set BASE_URL(url: string);
    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;
    static get CancellationMotive(): typeof enums.CancellationMotive;
    static get CustomsRegimes(): typeof enums.CustomsRegimes;
    static get CveTransporteEnum(): typeof enums.CveTransporteEnum;
    static get TipoEstacionEnum(): typeof enums.TipoEstacionEnum;
    static get PermisoSctEnum(): typeof enums.PermisoSctEnum;
    static get SectorCofeprisEnum(): typeof enums.SectorCofeprisEnum;
    static get PharmaceuticalFormsEnum(): typeof enums.PharmaceuticalFormsEnum;
    static get SpecialConditionsEnum(): typeof enums.SpecialConditionsEnum;
    static get MaterialTypeEnum(): typeof enums.MaterialTypeEnum;
    static get TypeOfCustomsDocumentEnum(): typeof enums.TypeOfCustomsDocumentEnum;
    static get TransportTypeEnum(): typeof enums.TransportTypeEnum;
    static get TransportFigureEnum(): typeof enums.TransportFigureEnum;
    static get RegistroIstmoEnum(): typeof enums.RegistroIstmoEnum;
    static get LoadingKey(): typeof enums.LoadingKey;
    static get ConfigMaritimaEnum(): typeof enums.ConfigMaritimaEnum;
    static get RailTrafficTypeEnum(): typeof enums.RailTrafficTypeEnum;
    static get ContainerTypeEnum(): typeof enums.ContainerTypeEnum;
    static get MaritimeContainerTypeEnum(): typeof enums.MaritimeContainerTypeEnum;
    static get RailCarTypeEnum(): typeof enums.RailCarTypeEnum;
    static get RailServiceTypeEnum(): typeof enums.RailServiceTypeEnum;
    static get MotivoTrasladoEnum(): typeof enums.MotivoTrasladoEnum;
    constructor(apiKey: string, options?: FacturapiOptions);
}
