import { AxiosInstance } from 'axios';
import { Provider } from '../../client/invoice-manager';
import { CreateInvoiceData, Invoice, InvoiceID, InvoiceStats, DataContainer, InvoiceUpdate } from '../../models/invoice';
type Settings = {
    url: string;
    apiKey: string;
    merchantId: number;
} | {
    client: AxiosInstance;
};
/** HttpProvider provides methods to communicate with Merchant API via HTTP. */
export declare class HttpProvider implements Provider {
    private readonly _apiKey;
    private readonly _client;
    constructor(settings: Settings);
    createInvoice(data: CreateInvoiceData): Promise<DataContainer<Invoice>>;
    cancelInvoice(invoiceId: InvoiceID): Promise<DataContainer<Invoice>>;
    getInvoiceInfo(invoiceId: InvoiceID): Promise<DataContainer<Invoice>>;
    getInvoiceStats(): Promise<DataContainer<InvoiceStats>>;
    isUpdateValid(update: InvoiceUpdate): boolean;
    private _sendWithAuth;
    private _invalidData;
    private _parseInvoiceResponse;
    private _isSuccess;
}
export {};
