import { type GoalCustomEntry, type GoalEntrySource, type GoalResult, type GoalSnapshot, type GoalStatus, type SessionEntryLike, type ThreadGoal } from "./types.js"; export interface ApplyUsageOptions { expectedGoalId?: string | null; accountBudgetLimited?: boolean; } export declare function unixSeconds(): number; export declare function unixMilliseconds(): number; export declare function cloneGoal(goal: ThreadGoal): ThreadGoal; export declare function validateObjective(objective: string): string | null; export declare function validateTokenBudget(tokenBudget: number | null | undefined): string | null; export declare function statusAfterBudgetLimit(status: GoalStatus, tokensUsed: number, tokenBudget: number | null): GoalStatus; export declare function createThreadGoal(objective: string, tokenBudget?: number | null, now?: number): ThreadGoal; export declare function setEntry(goal: ThreadGoal, source: GoalEntrySource, at?: number): GoalCustomEntry; export declare function clearEntry(clearedGoalId: string | null, source: GoalEntrySource, at?: number): GoalCustomEntry; export declare function isGoalCustomEntry(data: unknown): data is GoalCustomEntry; export declare function isThreadGoal(goal: unknown): goal is ThreadGoal; export declare function isGoalStatus(status: unknown): status is GoalStatus; export declare function reconstructGoal(entries: Iterable): GoalSnapshot; export declare function createGoal(current: ThreadGoal | null, objective: string, tokenBudget?: number | null): GoalResult; export declare function replaceGoal(objective: string, tokenBudget?: number | null): GoalResult; export declare function updateGoalStatus(current: ThreadGoal | null, status: GoalStatus): GoalResult; export declare function updateGoalBudget(current: ThreadGoal | null, tokenBudget: number | null): GoalResult; export interface EditGoalInput { objective?: string; tokenBudget?: number | null; } export declare function editGoal(current: ThreadGoal | null, input: EditGoalInput): GoalResult; export declare function applyUsage(current: ThreadGoal | null, tokensDelta: number, activeSecondsDelta: number, options?: ApplyUsageOptions): { goal: ThreadGoal | null; changed: boolean; crossedBudget: boolean; }; export declare function goalWithLiveUsage(current: ThreadGoal | null, activeGoalId: string | null, lastAccountedAt: number | null, now?: number): ThreadGoal | null; //# sourceMappingURL=state.d.ts.map