import { AiMode, type AiGenerateRequest, type RememberFactCandidate } from "@superblocksteam/library-shared/types";
import { type Clark, type ClarkStateHandlerParams } from "../state-machine/clark-fsm.js";
import type { ChatSessionStore } from "../chat/chat-session-store.js";
/**
 * Resolves which mode to restore after a fact-capture detour.
 * Falls back to BUILD if no prior mode was recorded.
 */
export declare const getModeAfterFactCapture: (ctx: Clark["context"]) => AiMode;
/**
 * Persist approved facts to disk and send an `app_facts_saved` message.
 * On failure, sends a user-visible error message instead.
 */
export declare function saveFactsAndNotify(clark: Clark, chatSessionStore: ChatSessionStore, appRootDirPath: string, facts: RememberFactCandidate[], logLabel: string): Promise<void>;
/**
 * Handle a user's approval or rejection of pending app facts from the
 * agent-planning handler. Resolves the pending facts, saves if approved,
 * and transitions to the appropriate next state.
 *
 * @returns `true` if this was a fact-approval flow (caller should `return`),
 *          `false` if the response was unrelated to pending facts.
 */
export declare function handleAppFactsApprovalResponse(clark: Clark, params: ClarkStateHandlerParams, request: AiGenerateRequest): Promise<boolean>;
/**
 * After an LLM turn in FACT mode, if Clark called `rememberFacts`, build and
 * send the approval prompt (confirm for single fact, multi_choice for many)
 * and transition to `$AwaitingUser`.
 *
 * @returns `true` if there were candidates to present (caller should `return`),
 *          `false` otherwise.
 */
export declare function presentFactApprovalMessage(clark: Clark, chatSessionStore: ChatSessionStore): Promise<boolean>;
//# sourceMappingURL=helpers.d.ts.map