import type { KsefnikConfig, KsefAdapter, Invoice, BankTransaction, ReconciliationReport, FetchInvoicesOpts, SendInvoiceInput, SendInvoiceResult, UpoResult, KsefPlugin, Storage } from '@ksefnik/shared'; import { PluginRegistry } from './plugins/registry.js'; import type { ImportBankStatementOpts } from './bank/index.js'; import type { ValidationReport } from './validation/engine.js'; export interface CreateKsefnikOpts { config: KsefnikConfig; adapter?: KsefAdapter; storage?: Storage; } declare class InvoiceNamespace { private adapter; private storage; constructor(adapter: KsefAdapter | undefined, storage: Storage); fetch(opts: FetchInvoicesOpts): Promise; send(input: SendInvoiceInput): Promise; getUpo(ksefReference: string): Promise; list(): Promise; } declare class BankNamespace { private storage; constructor(storage: Storage); importFromString(content: string, opts?: ImportBankStatementOpts): Promise; list(): Promise; } declare class ReconciliationNamespace { private registry; constructor(registry: PluginRegistry); run(invoices: Invoice[], transactions: BankTransaction[]): Promise; } declare class ValidationNamespace { validate(invoices: Invoice[]): ValidationReport[]; } declare class PluginsNamespace { private registry; constructor(registry: PluginRegistry); register(plugin: KsefPlugin): void; load(name: string): Promise; list(): KsefPlugin[]; } export declare class Ksefnik { readonly invoices: InvoiceNamespace; readonly bank: BankNamespace; readonly reconciliation: ReconciliationNamespace; readonly validation: ValidationNamespace; readonly plugins: PluginsNamespace; readonly storage: Storage; constructor(opts: CreateKsefnikOpts); } export declare function createKsefnik(opts: CreateKsefnikOpts): Ksefnik; export {}; //# sourceMappingURL=ksefnik.d.ts.map