export declare class Invoice {
    id: string;
    agencyId: string;
    schemeId: string;
    invoiceNumber: string;
    totalAmount: number;
    submitStatus: boolean;
    /** Date the bill was marked submitted to authority (user-provided). */
    submittedDate?: string;
    /** Billing workflow: pending | waiting | submit | paid (see invoiceWorkflowStatus constants). */
    status: string;
    /** online | offline — set when payment is recorded */
    paymentMode?: string | null;
    paidDate?: string;
    paidAmount?: number;
    /**
     * Net payable after penalties (GST-inclusive payable from tax invoice), set when tax invoice is generated.
     */
    finalAmount?: number | null;
    penaltyAmount?: number;
    /** Optional summary penalty label (e.g. after payment); distinct from `penalties` line items. */
    penaltyType?: string | null;
    createdDate: Date;
    isDeleted: boolean;
    /** First day of the billing month (scheduled O&M monthly invoices) */
    billingPeriodKey?: string;
    snapshotOmAmount?: string;
    snapshotMonthlyAmount?: string;
    generatedHtmlPath?: string;
    generatedPdfPath?: string;
    /** DB-backed PDF bytes (used when not storing in object storage). */
    documentStorageData?: Buffer | null;
    /** DB-backed ZIP bytes for supporting docs. */
    supportingFileData?: Buffer | null;
    /** Tax invoice PDF bytes (distinct from performa PDF in document_storage_data). */
    taxInvoiceDocumentStorageData?: Buffer | null;
    payorderFileData?: Buffer | null;
    /** S3 artifact refs when invoice row was created via presigned PUT bulk upload */
    s3ArtifactKeys?: Record<string, unknown> | null;
    payorderFileName?: string | null;
    paymentInvoiceNumbers?: string[];
    paymentUtrNo?: string | null;
    paymentNote?: string | null;
    fromDate?: string;
    toDate?: string;
    /** Pending | Generated (document lifecycle; Generated when submitted to authority) */
    invoiceStatus: string;
    /** Human-facing invoice number for print/PDF */
    invoiceNumberDisplay?: string;
    createdAt: Date;
    updatedAt: Date;
}
//# sourceMappingURL=Invoice.d.ts.map