import type { EnvironmentKey, ApiResponse, InvoiceListItem, InvoiceDetails, DraftInvoice, CreateInvoiceResult, UserData } from "./types"; interface DateRange { startDate: string; endDate: string; } interface SignedOptions { signed: boolean; } interface CreateInvoiceOptions { sign?: boolean; } export declare class FaturaClient { private readonly baseURL; private readonly loginCmd; private readonly logoutCmd; constructor(env?: EnvironmentKey); private buildHeaders; private runCommand; getToken(userName: string, password: string): Promise; logout(token: string): Promise; createDraftInvoice(token: string, invoiceDetails: InvoiceDetails): Promise; findInvoice(token: string, draftInvoice: DraftInvoice): Promise; signDraftInvoice(token: string, draftInvoice: InvoiceListItem): Promise; cancelDraftInvoice(token: string, reason: string, draftInvoice: InvoiceListItem): Promise; getAllInvoicesByDateRange(token: string, { startDate, endDate }: DateRange): Promise; getAllInvoicesIssuedToMeByDateRange(token: string, { startDate, endDate }: DateRange): Promise; getInvoiceHTML(token: string, uuid: string, { signed }: SignedOptions): Promise; getDownloadURL(token: string, invoiceUUID: string, { signed }: SignedOptions): string; getUserData(token: string): Promise; updateUserData(token: string, userData: UserData): Promise; getRecipientDataByTaxIDOrTRID(token: string, taxIDOrTRID: string): Promise; sendSignSMSCode(token: string, phone: string): Promise; verifySignSMSCode(token: string, smsCode: string, operationId: string): Promise; createInvoice(userId: string, password: string, invoiceDetails: InvoiceDetails, { sign }?: CreateInvoiceOptions): Promise; createInvoiceAndGetDownloadURL(userId: string, password: string, invoiceDetails: InvoiceDetails, options?: CreateInvoiceOptions): Promise; createInvoiceAndGetHTML(userId: string, password: string, invoiceDetails: InvoiceDetails, options?: CreateInvoiceOptions): Promise; } export declare function createFaturaClient(env?: EnvironmentKey): FaturaClient; export {};