import { type SemanticConfiguredModel, type SemanticHarness, type SemanticInvalidReasonCode, type SemanticUsageReceiptV1 } from "./contract.js"; export declare const SEMANTIC_USAGE_TOKEN_FIELDS: readonly ["input_tokens", "cached_input_tokens", "cache_creation_input_tokens", "output_tokens", "reasoning_tokens", "total_tokens"]; export type SemanticUsageTokenField = (typeof SEMANTIC_USAGE_TOKEN_FIELDS)[number]; export type SemanticUsageTokenTotals = Partial>; export type SemanticUsageOutcome = "accepted" | "invalid" | "unavailable" | "deferred"; export interface SemanticUsageEvent { source_harness?: SemanticHarness; configured_model?: SemanticConfiguredModel; resolved_model_id?: string; model_attestation?: "verified" | "requested-only"; action?: string; model_call: boolean; usage?: SemanticUsageReceiptV1; invalid_reason_codes?: SemanticInvalidReasonCode[]; } export interface SemanticUsageBreakdown { harness?: SemanticHarness; configured_model?: SemanticConfiguredModel; resolved_model_id?: string; model_attestation?: "verified" | "requested-only"; call_count: number; outcomes: Record; invalid_reasons: Partial>; native_tokens: SemanticUsageTokenTotals; estimated_tokens: SemanticUsageTokenTotals; unreported_calls: number; } export interface SemanticUsageAggregate { call_count: number; outcomes: Record; invalid_reasons: Partial>; native_tokens: SemanticUsageTokenTotals; estimated_tokens: SemanticUsageTokenTotals; unreported_calls: number; breakdowns: SemanticUsageBreakdown[]; } export declare function nativeSemanticUsage(values: Partial>): SemanticUsageReceiptV1 | undefined; export declare function estimateVisibleSemanticUsage(prompt: string, response: string): SemanticUsageReceiptV1; export declare function unreportedSemanticUsage(): SemanticUsageReceiptV1; export declare function aggregateSemanticUsage(events: readonly SemanticUsageEvent[]): SemanticUsageAggregate; export declare function mergeSemanticUsageAggregates(left: SemanticUsageAggregate, right: SemanticUsageAggregate): SemanticUsageAggregate; export declare function emptySemanticUsageAggregate(): SemanticUsageAggregate; //# sourceMappingURL=usage.d.ts.map