export { isSelfScopedUsageRead, usageOrgScope, type UsageOrgScope, type UsageOrgScopeOptions, } from "./org-scope.js"; export declare const BUILDER_AGENT_CREDIT_MARGIN_MULTIPLIER = 1.25; export declare const BUILDER_AGENT_CREDITS_PER_USD = 20; export type UsageBillingUnit = "usd" | "builder-credits" | "mixed" | "unknown"; export interface UsageBillingMode { unit: UsageBillingUnit; label: string; shortLabel: string; source: "estimated-provider-cost" | "builder-agent-credits" | "mixed-provider-usage" | "unknown"; hardCostMarginMultiplier?: number; creditsPerUsd?: number; } export declare const USD_USAGE_BILLING: UsageBillingMode; export declare const BUILDER_CREDIT_USAGE_BILLING: UsageBillingMode; export declare const MIXED_USAGE_BILLING: UsageBillingMode; export declare const UNKNOWN_USAGE_BILLING: UsageBillingMode; export declare function usageBillingForEngine(engineName: string | null | undefined): UsageBillingMode; export declare function builderCreditsFromCostCents(cents: number): number; export interface UsageRecord { ownerEmail: string; inputTokens: number; outputTokens: number; cacheReadTokens?: number; cacheWriteTokens?: number; model: string; label?: string; app?: string; refId?: string; costCentsX100?: number; builderCreditsUsed?: number; engineName?: string; costSource?: UsageCostSource; orgId?: string; runId?: string; threadId?: string; taskId?: string; integrationScopeId?: string; sourcePlatform?: string; sourceId?: string; } export type UsageCostSource = "reported" | "estimated" | "unavailable"; export declare function resolveUsageAppKey(app?: string | null): string; export declare const usageStore: import("../db/store-registry.js").Store; export declare function ensureUsageTable(): Promise; export declare function calculateCost(inputTokens: number, outputTokens: number, model: string, cacheReadTokens?: number, cacheWriteTokens?: number): number; export declare function recordUsage(record: UsageRecord): Promise; export declare function recordUsage(ownerEmail: string, inputTokens: number, outputTokens: number, model: string): Promise; export declare function getUserUsageCents(ownerEmail: string): Promise; export interface UsageSummaryOptions { ownerEmail: string; sinceMs?: number; } export interface UsageBucket { key: string; inputTokens: number; outputTokens: number; cacheReadTokens: number; cacheWriteTokens: number; cents: number; cost: UsageCostAggregate; calls: number; } export interface DailyBucket { date: string; cents: number; cost: UsageCostAggregate; calls: number; } export type UsageCostAggregate = { status: "known"; knownCents: number; unavailableCalls: 0; } | { status: "partial"; knownCents: number; unavailableCalls: number; } | { status: "unavailable"; knownCents: 0; unavailableCalls: number; }; export interface UsageRecentEntry { id: number; createdAt: number; label: string; app: string; model: string; inputTokens: number; outputTokens: number; cacheReadTokens: number; cacheWriteTokens: number; cents: number; costSource: UsageCostSource; } export interface UsageSummary { billing?: UsageBillingMode; totalCents: number; totalCost: UsageCostAggregate; totalCalls: number; totalInputTokens: number; totalOutputTokens: number; totalCacheReadTokens: number; totalCacheWriteTokens: number; sinceMs: number; byLabel: UsageBucket[]; byModel: UsageBucket[]; byApp: UsageBucket[]; byDay: DailyBucket[]; recent: UsageRecentEntry[]; } export declare function getUsageSummary(options: UsageSummaryOptions): Promise;