import { BaseModel } from '@/models/BaseModel'; import { BillRequest, BillPosition, BillRecipient, BillServicePeriod, BillDiscount, BillCashDiscount, BillAttachment, BillBankInformation, BillReminder, BillSearchFilters } from '@/types/bill'; import { Currency, MultiLanguageString } from '@/types'; export declare class Bill extends BaseModel implements BillRequest { language: string; currency: Currency; dueAfterDays: number; positions: BillPosition[]; recipient: BillRecipient; date?: string; servicePeriod?: BillServicePeriod; discount?: BillDiscount; cashDiscounts?: BillCashDiscount[]; shippingCost?: number; applicationFee?: number; note?: string; terms?: string; attachments?: BillAttachment[]; bankInformation?: BillBankInformation; payoutDescriptor?: string | null; psp?: number[]; pm?: string[]; reminders?: BillReminder[]; reference?: string | null; design?: string; send?: boolean; additionalRecipients?: BillRecipient[]; complete?: boolean; offset?: number; limit?: number; constructor(data?: Partial); setLanguage(language: string): this; getLanguage(): string; setCurrency(currency: Currency): this; getCurrency(): Currency; setDueAfterDays(days: number): this; getDueAfterDays(): number; setDate(date: string): this; getDate(): string | undefined; addPosition(position: BillPosition): this; addProduct(name: string, quantity: number, pricePerUnit: number, description?: string, sku?: string, vatRate?: number): this; addService(name: string, hours: number, hourlyRate: number, description?: string, vatRate?: number): this; removePosition(index: number): this; clearPositions(): this; getPositions(): BillPosition[]; setRecipient(recipient: BillRecipient): this; getRecipient(): BillRecipient; addAdditionalRecipient(recipient: BillRecipient): this; setServicePeriod(from: string, to: string, description?: string): this; setDiscount(discount: BillDiscount): this; addCashDiscount(percentage: number, daysAfterInvoice: number, description?: string): this; setShippingCost(cost: number): this; setApplicationFee(fee: number): this; setNote(note: string): this; setTerms(terms: string): this; addAttachment(attachment: BillAttachment): this; setBankInformation(bankInfo: BillBankInformation): this; setPayoutDescriptor(descriptor: string | null): this; setPsp(psp: number[]): this; addPsp(pspId: number): this; setPm(pm: string[]): this; addPm(paymentMethod: string): this; addReminder(days: number, fee?: number, text?: string | MultiLanguageString, sendEmail?: boolean): this; setReference(reference: string | null): this; setDesign(design: string): this; setSend(send: boolean): this; setComplete(complete: boolean): this; setOffset(offset: number): this; setLimit(limit: number): this; calculateTotal(): number; calculateSubtotal(): number; calculateVat(): number; getApiEndpoint(): string; validate(): void; toApiFormat(): BillRequest; private isValidEmail; private isValidIban; static createSimpleBill(language: string, currency: Currency, recipient: BillRecipient, productName: string, quantity: number, pricePerUnit: number, dueAfterDays?: number): Bill; static createServiceBill(language: string, currency: Currency, recipient: BillRecipient, serviceName: string, hours: number, hourlyRate: number, serviceDescription?: string, dueAfterDays?: number): Bill; static forListing(filters?: BillSearchFilters, offset?: number, limit?: number): Bill; static createSwissBill(recipient: BillRecipient, language?: string, dueAfterDays?: number): Bill; } //# sourceMappingURL=Bill.d.ts.map