import { SmrtCollection } from '@happyvertical/smrt-core'; import { TenantUsageMetric } from '../models/TenantUsageMetric.js'; import { AiUsageSummary, RecordUsageOptions, SummarizeAiUsageOptions, SummarizeUsageBatchOptions, SummarizeUsageOptions, UsageSummary } from '../types.js'; export declare class TenantUsageMetricCollection extends SmrtCollection { static readonly _itemClass: typeof TenantUsageMetric; recordUsage(options: RecordUsageOptions): Promise; /** * Legacy accessor — finds metrics for `subscriberKind = 'tenant'` under the * given tenant. External-kind rows scoped to the same tenant are excluded. */ findByTenantAndMetric(tenantId: string, metricKey: string): Promise; summarizeUsage(options: SummarizeUsageOptions): Promise; summarizeUsageBatch(options: SummarizeUsageBatchOptions): Promise; /** * Summarize persisted AI usage for a tenant within a window. * * Reads the framework `_smrt_ai_usage` system table via a raw aggregate * query. This deliberately uses `this.db.query` rather than the inherited * `query()`: those rows are framework usage records, not `TenantUsageMetric` * instances, so model hydration would discard the aggregate columns. Tenant * scoping is applied explicitly through the `tenant_id` filter. * * Named distinctly from the inherited `SmrtClass.summarizeAiUsage` (which * returns grouped stats across all tenants) to avoid overriding it. */ summarizeTenantAiUsage(options: SummarizeAiUsageOptions): Promise; } //# sourceMappingURL=TenantUsageMetricCollection.d.ts.map