import { EInvoice, CreateInvoiceRequest, UpdateInvoiceRequest, InvoiceListParams, InvoiceTemplate, InvoiceStats } from '../types/einvoice';
import { BaseResource } from './base';
export declare class EInvoiceResource extends BaseResource {
    /**
     * Get list of invoices
     */
    list(params?: InvoiceListParams): Promise<{
        data: EInvoice[];
    }>;
    /**
     * Get invoice by ID
     */
    getById(invoiceId: string): Promise<EInvoice>;
    /**
     * Create new invoice
     */
    create(data: CreateInvoiceRequest): Promise<EInvoice>;
    /**
     * Update invoice
     */
    update(invoiceId: string, data: UpdateInvoiceRequest): Promise<EInvoice>;
    /**
     * Sign invoice
     */
    sign(invoiceId: string): Promise<EInvoice>;
    /**
     * Cancel invoice
     */
    cancel(invoiceId: string, reason: string): Promise<EInvoice>;
    /**
     * Send invoice to customer
     */
    send(invoiceId: string, data: {
        email?: string;
        send_sms?: boolean;
        phone_number?: string;
    }): Promise<EInvoice>;
    /**
     * Get invoice PDF
     */
    getPDF(invoiceId: string, template?: string): Promise<{
        download_url: string;
        expires_at: string;
    }>;
    /**
     * Get invoice XML
     */
    getXML(invoiceId: string): Promise<{
        download_url: string;
        expires_at: string;
    }>;
    /**
     * List invoice templates
     */
    listTemplates(): Promise<{
        data: InvoiceTemplate[];
    }>;
    /**
     * Get invoice statistics
     */
    getStats(params?: {
        from_date?: string;
        to_date?: string;
    }): Promise<InvoiceStats>;
    /**
     * Get invoices by order
     */
    getByOrder(orderId: string): Promise<{
        data: EInvoice[];
    }>;
    /**
     * Validate invoice data
     */
    validate(data: CreateInvoiceRequest): Promise<{
        is_valid: boolean;
        errors?: {
            field: string;
            message: string;
        }[];
    }>;
    /**
     * Get invoice numbering sequence
     */
    getNextNumber(series: string): Promise<{
        next_number: string;
        series: string;
    }>;
    /**
     * Get invoice settings
     */
    getSettings(): Promise<{
        auto_create: boolean;
        default_template_id: string;
        series_format: string;
        tax_code: string;
        company_name: string;
        company_address: string;
    }>;
    /**
     * Update invoice settings
     */
    updateSettings(settings: {
        auto_create?: boolean;
        default_template_id?: string;
        series_format?: string;
        tax_code?: string;
        company_name?: string;
        company_address?: string;
    }): Promise<{
        auto_create: boolean;
        default_template_id: string;
        series_format: string;
        tax_code: string;
        company_name: string;
        company_address: string;
    }>;
}
