import { type AiGenerateRequest, type KnowledgePromotionSelection, type RememberKnowledgeCandidate } from "@superblocksteam/library-shared/types";
import type { ChatSessionStore } from "../chat/chat-session-store.js";
import { type Clark, type ClarkStateHandlerParams } from "../state-machine/clark-fsm.js";
/**
 * Persist approved knowledge entries to disk and send an `app_knowledge_saved` message.
 * On failure, sends a user-visible error message instead.
 */
export declare function saveKnowledgeAndNotify(clark: Clark, params: ClarkStateHandlerParams, chatSessionStore: ChatSessionStore, appRootDirPath: string, responseToMessageId: string, knowledgeEntries: RememberKnowledgeCandidate[], selectedKnowledgeIndices: number[], selectedScopesByIndex: Map<number, KnowledgePromotionSelection>, logLabel: string): Promise<void>;
/**
 * Handle a user's approval or rejection of pending app knowledge from the
 * agent-planning handler. Resolves the pending entries, saves if approved,
 * and transitions to the appropriate next state.
 *
 * @returns `true` if this was a knowledge-approval flow (caller should `return`),
 *          `false` if the response was unrelated to pending app knowledge.
 */
export declare function handleAppKnowledgeApprovalResponse(clark: Clark, params: ClarkStateHandlerParams, request: AiGenerateRequest): Promise<boolean>;
/**
 * After an LLM turn where Clark called `rememberKnowledge`, build and
 * send the approval prompt (confirm for single entry, multi_choice for many)
 * and transition to `$AwaitingUser`.
 *
 * @returns `true` if there were candidates to present (caller should `return`),
 *          `false` otherwise.
 */
export declare function presentKnowledgeApprovalMessage(clark: Clark, chatSessionStore: ChatSessionStore): Promise<boolean>;
//# sourceMappingURL=helpers.d.ts.map