import { WorkspaceScopedResource } from './base.js';
import type { ListParams } from '../core/utils.js';
export interface ListInvoicesParams extends ListParams {
    status?: 'draft' | 'sent' | 'paid' | 'void';
    date_from?: string;
    date_to?: string;
}
export interface UsageTrendsParams {
    days?: number;
    date_from?: string;
    date_to?: string;
    meter_key?: string;
}
/**
 * Billing — dashboard, usage summaries, invoices, and usage trends.
 */
export declare class BillingResource extends WorkspaceScopedResource {
    /** Get composite billing dashboard — KPIs, period comparison, top meters, invoice summary */
    getDashboard(): Promise<{
        current_period_total: number;
        delta_pct: number | null;
        invoice_status_summary: {
            [x: string]: number;
        };
        period_end: string | null;
        period_start: string | null;
        previous_period_total: number | null;
        top_meters: {
            display_name: string;
            meter_key: string;
            metering_source?: "production" | "simulation" | undefined;
            unit: string;
            value: number;
        }[];
        workspace_id: string;
    } & import("../index.js").ResponseMetadata>;
    /** Get usage summary for the workspace */
    getUsage(): Promise<{
        [x: string]: unknown;
    } & import("../index.js").ResponseMetadata>;
    /** Get usage time-series per meter for trend charts */
    getUsageTrends(params?: UsageTrendsParams): Promise<{
        meter_key: string;
        metering_source?: "production" | "simulation" | undefined;
        period_end: string;
        period_start: string;
        unit: string;
        value: number;
    }[] & import("../index.js").ResponseMetadata>;
    /** List invoices for the workspace */
    listInvoices(params?: ListInvoicesParams): Promise<{
        continuation_token?: number | null | undefined;
        has_more: boolean;
        items: {
            adjustments: string;
            created_at: string | null;
            customer_id: string;
            id: string;
            invoice_number: string;
            line_items: {
                description?: string | undefined;
                meter_key: string;
                metering_source?: "production" | "simulation" | undefined;
                quantity: string;
                total: string;
                unit_price: string;
            }[];
            paid_at: string | null;
            pdf_s3_key: string | null;
            period_end: string;
            period_start: string;
            sent_at: string | null;
            status: "draft" | "sent" | "paid" | "void";
            subtotal: string;
            total: string;
            updated_at: string | null;
        }[];
        total?: number | null | undefined;
    } & import("../index.js").ResponseMetadata>;
    listInvoicesAutoPaging(params?: ListInvoicesParams): AsyncGenerator<{
        adjustments: string;
        created_at: string | null;
        customer_id: string;
        id: string;
        invoice_number: string;
        line_items: {
            description?: string | undefined;
            meter_key: string;
            metering_source?: "production" | "simulation" | undefined;
            quantity: string;
            total: string;
            unit_price: string;
        }[];
        paid_at: string | null;
        pdf_s3_key: string | null;
        period_end: string;
        period_start: string;
        sent_at: string | null;
        status: "draft" | "sent" | "paid" | "void";
        subtotal: string;
        total: string;
        updated_at: string | null;
    }, any, any>;
    /** Get invoice detail */
    getInvoice(invoiceId: string): Promise<{
        [x: string]: unknown;
    } & import("../index.js").ResponseMetadata>;
    /** Get presigned S3 URL for invoice PDF download */
    getInvoicePdf(invoiceId: string): Promise<{
        [x: string]: unknown;
    } & import("../index.js").ResponseMetadata>;
}
//# sourceMappingURL=billing.d.ts.map