import type { JsonObject, ToolDef } from '@fabric-harness/sdk'; import { type DatabricksStatementClient } from './sql-exec.js'; export type ConsumptionGroupBy = 'sku' | 'day'; export interface ConsumptionSummaryOptions { /** Inclusive start date, `YYYY-MM-DD`. */ startDate: string; /** Inclusive end date, `YYYY-MM-DD`. Defaults to `startDate`'s caller-provided window end. */ endDate: string; groupBy?: ConsumptionGroupBy; } export interface ConsumptionSummary { startDate: string; endDate: string; groupBy: ConsumptionGroupBy; rows: JsonObject[]; totalDbus: number; totalListCostUsd: number; } export interface DatabricksConsumptionOptions { warehouseId: string; pollIntervalMs?: number; timeoutMs?: number; } /** * System-Tables consumption reporting. Reads `system.billing.usage` joined to `list_prices` to report * real DBUs + list cost — the "prove the consumption" artifact for chargeback and partner credit. */ export declare function databricksConsumption(client: DatabricksStatementClient, options: DatabricksConsumptionOptions): { summary(opts: ConsumptionSummaryOptions): Promise; }; export type DatabricksConsumption = ReturnType; export interface DatabricksConsumptionToolOptions extends DatabricksConsumptionOptions { name?: string; description?: string; /** Clock injection for tests / determinism. */ now?: () => Date; } /** Agent-callable consumption report over the last `days` (default 30) or an explicit date window. */ export declare function databricksConsumptionTool(client: DatabricksStatementClient, options: DatabricksConsumptionToolOptions): ToolDef<{ days?: number; startDate?: string; endDate?: string; groupBy?: ConsumptionGroupBy; }, unknown>; //# sourceMappingURL=consumption.d.ts.map