import { type ClientId } from '../models/usage-record.js'; import { type ExportFormat } from '../services/export-service.js'; import { type BudgetBasis, type BudgetPeriod } from '../services/budget-service.js'; import { type GroupAxis, type SortKey, type TimeGrain } from '../db/repositories/usage-repository.js'; export interface ParsedArgs { command: string; positionals: string[]; today: boolean; days?: number; since?: string; until?: string; /** Scope filters. Repeatable, or comma-separated; each matches ANY value given. */ clients?: ClientName[]; models?: string[]; projects?: string[]; limit?: number; offset?: number; sort?: SortKey; grain?: TimeGrain; by?: GroupAxis[]; field?: string; failOver?: number; format?: ExportFormat; amount?: number; basis?: BudgetBasis; budgetPeriod?: BudgetPeriod; before?: string; yes: boolean; compare: boolean; /** Target models for `counterfactual`. Repeatable, or comma-separated. */ counterfactualModels?: string[]; includeSubagents: boolean; allStores: boolean; full: boolean; json: boolean; /** statusline only: no ANSI colour. `NO_COLOR` in the environment does the same. */ noColor: boolean; /** statusline and hook: context size, in tokens, from which the size turns yellow. */ ctxWarn?: number; /** statusline and hook: context size, in tokens, from which compacting is advised. */ ctxLimit?: number; help: boolean; } type ClientName = ClientId; export declare class ArgError extends Error { } export declare function parseArgs(argv: string[]): ParsedArgs; export {};