import { applyGoalTimeoutBoost, MAX_BODY_CHARS, MAX_PROGRESS_NOTES_INJECTED, MAX_TITLE_CHARS } from './goals.js'; export { MAX_BODY_CHARS, MAX_TITLE_CHARS, applyGoalTimeoutBoost as applyFocusTimeoutBoost, }; export interface FocusRecord { id: number; platform: string; channelId: string; threadId: string; title: string; body: string; /** true → inject each turn */ enabled: boolean; updatedAt: string; } /** Active (on) focus for the thread, or null. */ export declare function getFocusOn(platform: string, channelId: string, threadId: string): FocusRecord | null; /** Retained focus: on first, else most recent paused (off) row. */ export declare function getFocusRetained(platform: string, channelId: string, threadId: string): FocusRecord | null; export declare function hasFocusOn(platform: string, channelId: string, threadId: string): boolean; /** Set content and turn on (default). */ export declare function setFocus(input: { platform: string; channelId: string; threadId: string; userId: string; title: string; body?: string; replaceActive?: boolean; }): FocusRecord | null; /** Turn injection on. Uses retained paused content when present. */ export declare function focusOn(platform: string, channelId: string, threadId: string): { ok: true; focus: FocusRecord; } | { ok: false; error: string; }; /** Stop injection; keep title/body (paused). */ export declare function focusOff(platform: string, channelId: string, threadId: string): { ok: true; focus: FocusRecord; } | { ok: false; error: string; }; /** Clear content and disable (cancel row). */ export declare function focusClear(platform: string, channelId: string, threadId: string): { ok: true; } | { ok: false; error: string; }; /** * Wire-only Focus block. No complete_goal tokens — Focus is attention only. */ export declare function buildFocusSnippet(platform: string, channelId: string, threadId: string): string; export declare function formatFocusShow(focus: FocusRecord): string; /** @deprecated Prefer buildFocusSnippet — kept for callers still naming goal. */ export declare function buildGoalSnippetCompat(platform: string, channelId: string, threadId: string): string; /** Progress notes still live on the underlying row; optional for Focus UX. */ export declare function appendFocusNote(platform: string, channelId: string, threadId: string, text: string): boolean; export { MAX_PROGRESS_NOTES_INJECTED }; //# sourceMappingURL=focus.d.ts.map