import { z } from "zod"; declare const DocumentStateSchema: z.ZodObject<{ version: z.ZodNumber; lastGeneratedAt: z.ZodString; costUsd: z.ZodNumber; inputTokens: z.ZodNumber; outputTokens: z.ZodNumber; }, z.core.$strip>; declare const RepositoryStateSchema: z.ZodObject<{ lastCommitSha: z.ZodString; lastAnalyzedAt: z.ZodString; }, z.core.$strip>; declare const HistoryEntrySchema: z.ZodObject<{ timestamp: z.ZodString; type: z.ZodEnum<{ full: "full"; incremental: "incremental"; }>; documentsUpdated: z.ZodArray; totalCostUsd: z.ZodNumber; totalInputTokens: z.ZodOptional; totalOutputTokens: z.ZodOptional; durationMs: z.ZodNumber; }, z.core.$strip>; declare const StateSchema: z.ZodObject<{ version: z.ZodDefault; mode: z.ZodEnum<{ current: "current"; remote: "remote"; }>; lastGeneration: z.ZodDefault; model: z.ZodString; totalCostUsd: z.ZodNumber; totalInputTokens: z.ZodNumber; totalOutputTokens: z.ZodNumber; durationMs: z.ZodNumber; }, z.core.$strip>>>; repositories: z.ZodDefault>>; documents: z.ZodDefault>>; history: z.ZodDefault; documentsUpdated: z.ZodArray; totalCostUsd: z.ZodNumber; totalInputTokens: z.ZodOptional; totalOutputTokens: z.ZodOptional; durationMs: z.ZodNumber; }, z.core.$strip>>>; }, z.core.$strip>; export type OnPushState = z.infer; export type DocumentState = z.infer; export type RepositoryState = z.infer; export type HistoryEntry = z.infer; /** * Loads state from .onpush/state.json. Returns null if file doesn't exist. */ export declare function loadState(configDir: string): Promise; /** * Saves state atomically (write to temp, then rename) with file-level locking. */ export declare function saveState(configDir: string, state: OnPushState): Promise; /** * Creates a fresh state object for a given mode. */ export declare function createInitialState(mode: "current" | "remote"): OnPushState; /** * Updates the document state for a specific slug. */ export declare function updateDocumentState(state: OnPushState, slug: string, result: { costUsd: number; inputTokens: number; outputTokens: number; }): void; /** * Appends a history entry to state, keeping at most MAX_HISTORY_ENTRIES. */ export declare function appendHistory(state: OnPushState, entry: HistoryEntry): void; export {}; //# sourceMappingURL=state.d.ts.map