import { AxiosInstance } from 'axios'; import { KeezConstructor } from './config/constructorParam'; import { InvoiceRequest } from './dto/createInvoiceRequest'; import { InvoiceFilterParams, InvoiceRequestV2, SendInvoiceEmailParams } from './dto/invoices'; import { AllItemsResponse, CreateItemRequest, ItemFilterParams, ItemResponse, PatchItemRequest, UpdateItemRequest } from './dto/items'; import { KeezLogger } from './helpers/keezLogger'; export declare class KeezApi { private readonly appId; private readonly apiSecret; private readonly apiClientId; private authResponse; private authToken; private isLive; private readonly logger; private readonly httpClient; private refreshPromise; readonly invoices: InvoiceClient; readonly items: ItemClient; constructor(params: KeezConstructor); /** * Get the base domain for the API */ getBaseDomain(): string; /** * Set live mode. Clears any cached auth tokens to prevent * a staging token from being used against production. */ setLive(mode: boolean): void; /** @internal */ ensureValidToken(): Promise; private refreshToken; private doRefreshToken; /** @internal */ getCommonParams(): { baseDomain: string; appId: string; appClientId: string; bearerToken: string; httpClient: AxiosInstance; logger: KeezLogger; }; getAllInvoices(params?: InvoiceFilterParams): Promise; getInvoiceByExternalId(invoiceExternalId: string): Promise; sendInvoice(email: string, invoiceExternalId: string): Promise; sendInvoice(emailParams: SendInvoiceEmailParams, invoiceExternalId: string): Promise; /** * Create a new invoice. Accepts both v1 (single-item) and v2 (multi-item) formats. * @deprecated Use `InvoiceRequestV2` with the `items` array for new code. */ createInvoice(invoiceParams: InvoiceRequest): Promise; createInvoice(invoiceParams: InvoiceRequestV2): Promise; validateInvoice(invoiceExternalId: string): Promise; updateInvoice(invoiceId: string, invoice: InvoiceRequestV2): Promise; deleteInvoice(invoiceId: string): Promise; submitInvoiceToEfactura(invoiceId: string): Promise; cancelInvoice(invoiceId: string): Promise; downloadInvoicePdf(invoiceId: string): Promise; getAllItems(params?: ItemFilterParams): Promise; getItemByExternalId(itemId: string): Promise; createItem(item: CreateItemRequest): Promise; updateItem(itemId: string, item: UpdateItemRequest): Promise; patchItem(itemId: string, item: PatchItemRequest): Promise; } declare class InvoiceClient { private readonly api; constructor(api: KeezApi); getAll(params?: InvoiceFilterParams): Promise; getById(invoiceExternalId: string): Promise; create(invoiceParams: InvoiceRequest): Promise; create(invoiceParams: InvoiceRequestV2): Promise; update(invoiceId: string, invoice: InvoiceRequestV2): Promise; delete(invoiceId: string): Promise; validate(invoiceExternalId: string): Promise; cancel(invoiceId: string): Promise; submitEfactura(invoiceId: string): Promise; sendEmail(email: string, invoiceExternalId: string): Promise; sendEmail(emailParams: SendInvoiceEmailParams, invoiceExternalId: string): Promise; downloadPdf(invoiceId: string): Promise; } declare class ItemClient { private readonly api; constructor(api: KeezApi); getAll(params?: ItemFilterParams): Promise; getById(itemId: string): Promise; create(item: CreateItemRequest): Promise; update(itemId: string, item: UpdateItemRequest): Promise; patch(itemId: string, item: PatchItemRequest): Promise; } export {};