import type { CreateInvoiceRequest } from '../models/CreateInvoiceRequest';
import type { InvoiceData } from '../models/InvoiceData';
import type { InvoiceDataList } from '../models/InvoiceDataList';
import type { InvoicePaymentMethodDataModel } from '../models/InvoicePaymentMethodDataModel';
import type { MarkInvoiceStatusRequest } from '../models/MarkInvoiceStatusRequest';
import type { UpdateInvoiceRequest } from '../models/UpdateInvoiceRequest';
export declare class InvoicesService {
    /**
     * Get invoices
     * View information about the existing invoices
     * @returns InvoiceDataList list of invoices
     * @throws ApiError
     */
    static invoicesGetInvoices({ storeId, }: {
        /** The store to query **/
        storeId: string;
    }): Promise<InvoiceDataList>;
    /**
     * Create a new invoice
     * Create a new invoice
     * @returns InvoiceData Information about the new invoice
     * @throws ApiError
     */
    static invoicesCreateInvoice({ storeId, requestBody, }: {
        /** The store to query **/
        storeId: string;
        requestBody: CreateInvoiceRequest;
    }): Promise<InvoiceData>;
    /**
     * Get invoice
     * View information about the specified invoice
     * @returns InvoiceData specified invoice
     * @throws ApiError
     */
    static invoicesGetInvoice({ storeId, invoiceId, }: {
        /** The store to fetch **/
        storeId: string;
        /** The invoice to fetch **/
        invoiceId: string;
    }): Promise<InvoiceData>;
    /**
     * Archive invoice
     * Archives the specified invoice.
     * @returns any The invoice has been archived
     * @throws ApiError
     */
    static invoicesArchiveInvoice({ storeId, invoiceId, }: {
        /** The store the invoice belongs to **/
        storeId: string;
        /** The invoice to remove **/
        invoiceId: string;
    }): Promise<any>;
    /**
     * Update invoice
     * Updates the specified invoice.
     * @returns InvoiceData The invoice that has been updated
     * @throws ApiError
     */
    static invoicesUpdateInvoice({ storeId, invoiceId, requestBody, }: {
        /** The store the invoice belongs to **/
        storeId: string;
        /** The invoice to update **/
        invoiceId: string;
        requestBody: UpdateInvoiceRequest;
    }): Promise<InvoiceData>;
    /**
     * Get invoice payment methods
     * View information about the specified invoice's payment methods
     * @returns InvoicePaymentMethodDataModel specified invoice payment methods data
     * @throws ApiError
     */
    static invoicesGetInvoicePaymentMethods({ storeId, invoiceId, }: {
        /** The store to fetch **/
        storeId: string;
        /** The invoice to fetch **/
        invoiceId: string;
    }): Promise<Array<InvoicePaymentMethodDataModel>>;
    /**
     * Archive invoice
     * Archives the specified invoice.
     * @returns any The invoice has been archived
     * @throws ApiError
     */
    static invoicesArchiveInvoice1({ storeId, invoiceId, }: {
        /** The store the invoice belongs to **/
        storeId: string;
        /** The invoice to remove **/
        invoiceId: string;
    }): Promise<any>;
    /**
     * Mark invoice status
     * Mark an invoice as invalid or settled.
     * @returns InvoiceData The updated invoice
     * @throws ApiError
     */
    static invoicesMarkInvoiceStatus({ storeId, invoiceId, requestBody, }: {
        /** The store to query **/
        storeId: string;
        /** The invoice to update **/
        invoiceId: string;
        requestBody: MarkInvoiceStatusRequest;
    }): Promise<InvoiceData>;
    /**
     * Unarchive invoice
     * Unarchive an invoice
     * @returns InvoiceData The unarchived invoice
     * @throws ApiError
     */
    static invoicesUnarchiveInvoice({ storeId, invoiceId, }: {
        /** The store to query **/
        storeId: string;
        /** The invoice to update **/
        invoiceId: string;
    }): Promise<InvoiceData>;
}
