import type { AgentExecution } from "@stigmer/protos/ai/stigmer/agentic/agentexecution/v1/api_pb";
/**
 * Per-model cost breakdown.
 */
export interface ModelCostEntry {
    /** Model identifier (e.g. "claude-sonnet-4-20250514"). */
    readonly model: string;
    /** Provider name (e.g. "anthropic", "openai"). */
    readonly provider: string;
    /** Estimated cost in USD for this model's usage. */
    readonly estimatedCostUsd: number;
    /** Total input tokens consumed by this model. */
    readonly inputTokens: number;
    /** Total output tokens generated by this model. */
    readonly outputTokens: number;
    /** Tokens used to create cache entries. */
    readonly cacheCreationTokens: number;
    /** Tokens served from cache. */
    readonly cacheReadTokens: number;
    /** Number of LLM calls made to this model. */
    readonly callCount: number;
}
/** Return value of {@link useSessionUsage}. */
export interface UseSessionUsageReturn {
    /** Aggregate estimated cost in USD across all models. */
    readonly totalCostUsd: number;
    /** Total tokens (input + output) across all models. */
    readonly totalTokens: number;
    /** Total input tokens across all models. */
    readonly inputTokens: number;
    /** Total output tokens across all models. */
    readonly outputTokens: number;
    /** Total tokens served from cache across all models. */
    readonly cacheReadTokens: number;
    /** Total tokens used to create cache entries across all models. */
    readonly cacheCreationTokens: number;
    /** Total number of LLM calls in this session. */
    readonly llmCallCount: number;
    /** Per-model cost and token breakdown. */
    readonly modelBreakdown: readonly ModelCostEntry[];
    /** Model with the highest usage in this session. */
    readonly primaryModel: string;
    /** Provider of the primary model. */
    readonly primaryProvider: string;
    /** `true` when usage data is available. */
    readonly hasUsage: boolean;
}
/**
 * Usage hook for session-level cost and token aggregation.
 *
 * Calls `getSessionUsageReport` to fetch real usage data from the
 * billing domain. Returns zeros while loading or when no session is
 * available.
 *
 * @param executions - All executions for a session (used to derive session ID).
 */
export declare function useSessionUsage(executions: readonly AgentExecution[]): UseSessionUsageReturn;
//# sourceMappingURL=useSessionUsage.d.ts.map