/**
 * Octane API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: 1.0.0
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import * as runtime from '../runtime';
import { Invoice, PastInvoices, Retry, UpdateInvoiceStatusArgs } from '../models';
export interface InvoicesGetRequest {
    startTime?: Date;
    sortDirection?: string;
    forwardSecondarySortOffset?: string;
    limit?: number;
    forwardSortOffset?: string;
    status?: string;
    customerName?: string;
    sortColumn?: string;
}
export interface InvoicesInvoiceUuidDeleteRequest {
    invoiceUuid: string;
}
export interface InvoicesInvoiceUuidGetRequest {
    invoiceUuid: string;
}
export interface InvoicesInvoiceUuidRetriesPostRequest {
    invoiceUuid: string;
    body: object;
}
export interface InvoicesInvoiceUuidStatusPostRequest {
    invoiceUuid: string;
    updateInvoiceStatusArgs: UpdateInvoiceStatusArgs;
}
export interface InvoicesInvoiceUuidTokenPdfGetRequest {
    invoiceUuidToken: string;
}
/**
 *
 */
export declare class InvoicesApi extends runtime.BaseAPI {
    /**
     * Fetch a list of historical invoices generated by Octane.
     * Get Past Invoices
     */
    invoicesGetRaw(requestParameters: InvoicesGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<PastInvoices>>;
    /**
     * Fetch a list of historical invoices generated by Octane.
     * Get Past Invoices
     */
    invoicesGet(requestParameters?: InvoicesGetRequest, initOverrides?: RequestInit): Promise<PastInvoices>;
    /**
     * Delete a specific invoice via it\'s UUID. Invoices can only be deleted if they have not been issued.
     * Delete Invoice
     */
    invoicesInvoiceUuidDeleteRaw(requestParameters: InvoicesInvoiceUuidDeleteRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Delete a specific invoice via it\'s UUID. Invoices can only be deleted if they have not been issued.
     * Delete Invoice
     */
    invoicesInvoiceUuidDelete(requestParameters: InvoicesInvoiceUuidDeleteRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Get a specific invoice via it\'s UUID.
     * Get Invoice
     */
    invoicesInvoiceUuidGetRaw(requestParameters: InvoicesInvoiceUuidGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Invoice>>;
    /**
     * Get a specific invoice via it\'s UUID.
     * Get Invoice
     */
    invoicesInvoiceUuidGet(requestParameters: InvoicesInvoiceUuidGetRequest, initOverrides?: RequestInit): Promise<Invoice>;
    /**
     * Moves the invoice into the next logical action. For example, an invoice that is generated gets moved to issued, and an invoice that is in payment error tries payment again. For more information see our docs https://docs.getoctane.io/docs/manual-invoicing-triggers.
     * Create Retry
     */
    invoicesInvoiceUuidRetriesPostRaw(requestParameters: InvoicesInvoiceUuidRetriesPostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Retry>>;
    /**
     * Moves the invoice into the next logical action. For example, an invoice that is generated gets moved to issued, and an invoice that is in payment error tries payment again. For more information see our docs https://docs.getoctane.io/docs/manual-invoicing-triggers.
     * Create Retry
     */
    invoicesInvoiceUuidRetriesPost(requestParameters: InvoicesInvoiceUuidRetriesPostRequest, initOverrides?: RequestInit): Promise<Retry>;
    /**
     * Manually change the status of an invoice in Octane. For example, if an invoice was paid outside of Octane\'s payment providers, you can reflect that in Octane by setting the status to paid.
     * Update Invoice Status
     */
    invoicesInvoiceUuidStatusPostRaw(requestParameters: InvoicesInvoiceUuidStatusPostRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<void>>;
    /**
     * Manually change the status of an invoice in Octane. For example, if an invoice was paid outside of Octane\'s payment providers, you can reflect that in Octane by setting the status to paid.
     * Update Invoice Status
     */
    invoicesInvoiceUuidStatusPost(requestParameters: InvoicesInvoiceUuidStatusPostRequest, initOverrides?: RequestInit): Promise<void>;
    /**
     * Return the invoice pdf for the given invoice_uuid, first validating token.
     * Return Invoice PDF
     */
    invoicesInvoiceUuidTokenPdfGetRaw(requestParameters: InvoicesInvoiceUuidTokenPdfGetRequest, initOverrides?: RequestInit): Promise<runtime.ApiResponse<Error>>;
    /**
     * Return the invoice pdf for the given invoice_uuid, first validating token.
     * Return Invoice PDF
     */
    invoicesInvoiceUuidTokenPdfGet(requestParameters: InvoicesInvoiceUuidTokenPdfGetRequest, initOverrides?: RequestInit): Promise<Error>;
}
