import type { BudgetStatus, MeterConfig, SpendSummary, UsageInput } from "./types.js"; export type { ModelPrice, UsageInput, UsageEvent, Budget, MeterConfig, SpendSummary, BudgetScope, BudgetStatus, } from "./types.js"; export { DEFAULT_PRICES } from "./prices.js"; export { resolvePrice, computeCost } from "./pricing.js"; export { loadConfig, configPath, resolveStorePath } from "./config.js"; export { recordUsage, appendEvent, readEvents, summarize, sessionSpend } from "./store.js"; export { budgetStatuses, shouldDownshift, isOverLimit, resolveDownshift, WARN_RATIO } from "./budget.js"; export type { RecordResult } from "./store.js"; /** Read the ledger and summarize spend. */ export declare function getSummary(cwd?: string, config?: MeterConfig): SpendSummary; /** Budget statuses for the current ledger; pass a session id to include the session scope. */ export declare function getBudgetStatuses(cwd?: string, opts?: { sessionId?: string; config?: MeterConfig; }): BudgetStatus[]; /** Hard-limit statuses for the current ledger (config.hardLimit); pass a session id for the session scope. */ export declare function getHardLimitStatuses(cwd?: string, opts?: { sessionId?: string; config?: MeterConfig; }): BudgetStatus[]; /** True when spend has exceeded the configured hard limit in any scope. */ export declare function isOverHardLimit(cwd?: string, opts?: { sessionId?: string; config?: MeterConfig; }): boolean; /** Record one model call against the project's config. */ export declare function record(input: UsageInput, cwd?: string, config?: MeterConfig): import("./store.js").RecordResult; export declare function formatReport(summary: SpendSummary): string; export declare function formatStatus(statuses: BudgetStatus[]): string; /** Compact single-line status for a footer, e.g. "today $1.20/$5.00". */ export declare function formatStatusLine(statuses: BudgetStatus[]): string;