import { CreateBulkDraftRequest, CreateDraftRequest, CreateDraftResponse, CreateEInvoiceModelRequest, CreateEInvoiceModelResponse, DraftConfirmRequest, DraftModelResponse, DraftRequest, DraftResponse, EditAndSendDraftRequest, EditAndSendDraftResponse, ExportType, OperationType, TagInfo } from '../constants/types';
import { ApiResponse } from '../types';
import { BaseService } from './base.service';
/**
 * EInvoiceService
 * Service for managing draft e-invoice operations.
 */
export declare class EInvoiceService extends BaseService {
    /**
     * Lists draft invoices by sending a request to the API.
     * @param {DraftRequest} params - Query parameters
     * @returns {Promise<ApiResponse<DraftResponse>>} - Draft invoice response with curl command
     */
    listDrafts(params?: DraftRequest): Promise<ApiResponse<DraftResponse>>;
    /**
     * Sends a request to the API to delete draft invoices.
     * @param {string[]} uuids - List of UUIDs of draft invoices to be deleted
     * @returns {Promise<ApiResponse<boolean>>} - Operation result with curl command
     */
    deleteDrafts(uuids: string[]): Promise<ApiResponse<boolean>>;
    /**
     * Downloads the HTML format of the draft.
     * @param {string} uuid - UUID of the draft invoice to get HTML format
     * @returns {Promise<ApiResponse<string>>} - HTML content of the draft invoice with curl command
     */
    getDraftHtml(uuid: string): Promise<ApiResponse<string>>;
    /**
     * Downloads the PDF format of the draft.
     * @param {string} uuid - UUID of the draft invoice to get PDF format
     * @returns {Promise<ApiResponse<Blob>>} - PDF content of the draft invoice with curl command
     */
    getDraftPdf(uuid: string): Promise<ApiResponse<Blob>>;
    /**
     * Downloads the XML format of the draft.
     * @param {string} uuid - UUID of the draft invoice to get XML format
     * @returns {Promise<ApiResponse<string>>} - XML content of the draft invoice with curl command
     */
    getDraftXml(uuid: string): Promise<ApiResponse<string>>;
    /**
     * Gets the model information of the draft.
     * @param {string} uuid - UUID of the draft invoice to get model information
     * @returns {Promise<ApiResponse<DraftModelResponse>>} - Model of the draft invoice with curl command
     */
    getDraftModel(uuid: string): Promise<ApiResponse<DraftModelResponse>>;
    /**
     * Assigns tags to a draft invoice.
     * @param {string} documentUUID - UUID of the draft invoice to assign tags
     * @param {string[]} tagUUIDs - List of tag UUIDs to be assigned
     * @returns {Promise<ApiResponse<boolean>>} - Operation result with curl command
     */
    assignTagToDraft(documentUUID: string, tagUUIDs: string[]): Promise<ApiResponse<boolean>>;
    /**
     * Gets the tag information of a draft invoice.
     * @param {string} documentUUID - UUID of the draft invoice to get tag information
     * @returns {Promise<ApiResponse<TagInfo[]>>} - List of tag information with curl command
     */
    getDraftTags(documentUUID: string): Promise<ApiResponse<TagInfo[]>>;
    /**
     * Exports draft invoices in bulk.
     * @param {string[]} uuids - List of UUIDs of draft invoices to be exported
     * @param {ExportType} fileType - Requested file type
     * @returns {Promise<ApiResponse<string>>} - Exported file URL with curl command
     */
    exportDrafts(uuids: string[], fileType: ExportType): Promise<ApiResponse<string>>;
    /**
     * Assigns new status to draft invoices.
     * @param {string[]} uuids - List of UUIDs of draft invoices to assign status
     * @param {OperationType} operationType - New operation type
     * @returns {Promise<ApiResponse<boolean>>} - Operation result with curl command
     */
    assignNewStatusToDrafts(uuids: string[], operationType: OperationType): Promise<ApiResponse<boolean>>;
    /**
     * Confirms and sends draft invoices.
     * @param {DraftConfirmRequest[]} drafts - Information of draft invoices to be sent
     * @returns {Promise<ApiResponse<string[]>>} - Response in case of success with curl command
     */
    confirmAndSendDrafts(drafts: DraftConfirmRequest[]): Promise<ApiResponse<string[]>>;
    /**
     * Edits and sends a draft.
     * @param {EditAndSendDraftRequest} editAndSendRequest - Request containing draft information to be edited
     * @returns {Promise<ApiResponse<EditAndSendDraftResponse>>} - Response in case of success with curl command
     */
    editAndSendDraft(editAndSendRequest: EditAndSendDraftRequest): Promise<ApiResponse<EditAndSendDraftResponse>>;
    /**
     * Creates a new draft invoice.
     * @param {CreateDraftRequest} createDraftRequest - Draft invoice creation request
     * @returns {Promise<ApiResponse<CreateDraftResponse>>} - Information of the created draft invoice with curl command
     */
    createDraft(createDraftRequest: CreateDraftRequest): Promise<ApiResponse<CreateDraftResponse>>;
    /**
     * Creates a new invoice model.
     * @param {CreateDraftEArchiveInvoiceRequest} createDraftRequest - Details of the draft invoice to be created
     * @returns {Promise<ApiResponse<string>>} - UUID and invoice number of created draft invoice with curl command
     */
    createEInvoiceModel(createEInvoiceModelRequest: CreateEInvoiceModelRequest): Promise<ApiResponse<CreateEInvoiceModelResponse>>;
    /**
     * Creates draft invoices in bulk.
     * @param {CreateBulkDraftRequest} createBulkDraftRequest - Request containing details of bulk draft invoices
     * @returns {Promise<ApiResponse<string[]>>} - List of UUIDs of successfully created draft invoices with curl command
     */
    createBulkDraft(createBulkDraftRequest: CreateBulkDraftRequest): Promise<ApiResponse<string[]>>;
}
