/** * routes/attribution-ingest.ts, the runtime-bus → cost-attribution ingest. * * LLM usage lands from LLM_RESPONSE_RECEIVED turn events (with agent / * tool / hook / MCP origin dimensions and quota-window snapshots from * rate-limit headers). Metered VOICE spend rides the same ledger from * PROVIDER_VOICE_USAGE events: the billable unit count lands on inputTokens * under a voice-scoped model key (e.g. `elevenlabs:voice-tts:characters`), * honestly UNPRICED until the one-key manual price (pricing.modelPrices) * names the USD per 1M units. Local voice engines never emit the event, * no billing dimension at all, never a fake $0.00. */ import type { RuntimeEventBus } from '../../runtime/events/index.js'; import type { CostAttributionService } from '../../runtime/cost/attribution.js'; import type { QuotaWindowTracker } from '../../runtime/cost/quota-window.js'; export declare function bindCostAttributionIngest(bus: Pick, costAttribution: Pick, quotaWindow: Pick): void; //# sourceMappingURL=attribution-ingest.d.ts.map