interface TokenInfo { input: number; output: number; cache: { read: number; write: number; }; } interface MessageInfo { id: string; role: string; sessionID: string; providerID?: string; modelID?: string; tokens?: TokenInfo; summary?: boolean; finish?: boolean; } export interface CompactionOptions { threshold?: number; getModelLimit?: (providerID: string, modelID: string) => number | undefined; } export interface CompactionContext { directory: string; client: { session: { summarize: (params: { path: { id: string; }; body: { providerID: string; modelID: string; }; query: { directory: string; }; }) => Promise; messages: (params: { path: { id: string; }; query: { directory: string; }; }) => Promise<{ data?: Array<{ info: MessageInfo; }>; }>; promptAsync: (params: { path: { id: string; }; body: { agent?: string; parts: Array<{ type: string; text: string; }>; }; query: { directory: string; }; }) => Promise; }; tui: { showToast: (params: { body: { title: string; message: string; variant: string; duration: number; }; }) => Promise; }; }; } export declare function createCompactionHook(ctx: CompactionContext, tags: { user: string; project: string; }, options?: CompactionOptions): { event({ event }: { event: { type: string; properties?: unknown; }; }): Promise; }; export {}; //# sourceMappingURL=compaction.d.ts.map