import { AfipService } from "./afip.service";
import { IFEDummyOutput, IServiceSoap12Soap, ServiceSoap12Types } from "../soap/interfaces/Service/ServiceSoap12";
import { Context, IGetSalesPointsResult, IVoucher, ICreateVoucherResult, INextVoucher } from "../types";
export declare class ElectronicBillingService extends AfipService<IServiceSoap12Soap> {
    constructor(context: Context);
    /**
     * Asks to web service for servers status
     *
     * @return object { AppServer : Web Service status,
     * DbServer : Database status, AuthServer : Autentication
     * server status}
     **/
    getServerStatus(): Promise<IFEDummyOutput>;
    /**
     * Asks to AFIP Servers for sales points availables {@see WS
     * Specification item 4.11}
     *
     * @return array All sales points availables
     **/
    getSalesPoints(): Promise<IGetSalesPointsResult>;
    /**
     * Asks to Afip servers for number of the last voucher created for
     * certain sales point and voucher type
     *
     * @param salesPoint Sales point to ask for last voucher
     * @param type Voucher type to ask for last voucher
     * @returns
     */
    getLastVoucher(salesPoint: number, type: number): Promise<ServiceSoap12Types.IFECompUltimoAutorizadoResult>;
    /**
     * Create a voucher from AFIP
     *
     * Send to AFIP servers request for create a voucher and assign
     * CAE to them
     *
     * @param req data Voucher parameter
     **/
    createVoucher(req: IVoucher): Promise<ICreateVoucherResult>;
    /**
     * Create next voucher from AFIP
     *
     * This method combines getLastVoucher and createVoucher
     * for create the next voucher
     *
     * @param req data Same to data in Afip.createVoucher except that
     * 	don't need CbteDesde and CbteHasta attributes
     **/
    createNextVoucher(req: INextVoucher): Promise<ICreateVoucherResult>;
    /**
     * Get voucher information
     *
     * Asks to AFIP servers for complete information of voucher
     *
     * @param number 		Number of voucher to get information
     * @param salesPoint 	Sales point of voucher to get information
     * @param type 			Type of voucher to get information
     *
     * @return data with array | null returns array with complete voucher information
     **/
    getVoucherInfo(number: number, salesPoint: number, type: number): Promise<ServiceSoap12Types.IFECompConsultarResult | null>;
    /**
     * Asks to AFIP Servers for voucher types availables
     **/
    getVoucherTypes(): Promise<ServiceSoap12Types.IFEParamGetTiposCbteResult>;
    /**
     * Asks to AFIP Servers for voucher concepts availables
     *
     * @return data with array of all voucher concepts availables
     **/
    getConceptTypes(): Promise<ServiceSoap12Types.IFEParamGetTiposConceptoResult>;
    /**
     * Asks to AFIP Servers for document types availables
     *
     * @return data with array of all document types availables
     **/
    getDocumentTypes(): Promise<ServiceSoap12Types.IFEParamGetTiposDocResult>;
    /**
     * Asks to AFIP Servers for aliquot availables
     *
     * @return data with array of all aliquot availables
     **/
    getAliquotTypes(): Promise<ServiceSoap12Types.IFEParamGetTiposIvaResult>;
    /**
     * Asks to AFIP Servers for currencies availables
     *
     * @return data with array of all currencies availables
     **/
    getCurrenciesTypes(): Promise<ServiceSoap12Types.IFEParamGetTiposMonedasResult>;
    /**
     * Asks to AFIP Servers for voucher optional data available
     *
     * @return data with array of all voucher optional data available
     **/
    getOptionsTypes(): Promise<ServiceSoap12Types.IFEParamGetTiposOpcionalResult>;
    /**
     * Asks to AFIP Servers for tax availables
     *
     * @return data with array of all tax availables
     **/
    getTaxTypes(): Promise<ServiceSoap12Types.IFEParamGetTiposTributosResult>;
    /**
     * Alias for createVoucher method.
     */
    createInvoice(req: IVoucher): Promise<ICreateVoucherResult>;
    /**
     * Alias for createVoucher method.
     */
    createNextInvoice(req: INextVoucher): Promise<ICreateVoucherResult>;
}
