import type { AgentLearningCategory, AgentLearningContext, AgentLearningMode } from "@opengeni/sdk"; export type LearningModes = Record; export declare const LEARNING_CATEGORIES: readonly AgentLearningCategory[]; export type AccessLevel = "off" | "read" | "write"; export declare const ACCESS_OPTIONS: readonly { value: AccessLevel; label: string; }[]; /** The learning settings a picker shows and edits beside Skills and Knowledge. */ export interface CapabilityLearning { modes: LearningModes; onChange: (modes: LearningModes) => void; } export declare function learningModesEqual(a: LearningModes, b: LearningModes): boolean; /** Skills: write tools whose saves are all refused are, in effect, read only. */ export declare function skillsAccess(skills: false | "read" | "manage", modes: LearningModes): AccessLevel; /** Knowledge: on, with neither knowledge nor instruction saves allowed, is read only. */ export declare function knowledgeAccess(knowledge: boolean, modes: LearningModes): AccessLevel; /** Learning after choosing Read and write: anything that was Off gets its default back. */ export declare function enableWrites(modes: LearningModes, categories: readonly AgentLearningCategory[]): LearningModes; /** Learning after choosing Read: the agent may look but saves nothing. */ export declare function disableWrites(modes: LearningModes, categories: readonly AgentLearningCategory[]): LearningModes; export interface LearningSettingsState { /** What applies: a chat's own choice, else the default. Null while loading. */ modes: LearningModes | null; error: unknown; /** * Saves only what changed. For a chat, a changed category becomes this * chat's own choice; for defaults, the whole record is written. */ save: (next: LearningModes) => Promise; } /** Agent learning for one scope (shared chats or private chats), or one chat in it. */ export declare function useLearningSettings(props: { workspaceId: string; scope: "workspace" | "personal"; source?: AgentLearningContext | undefined; enabled?: boolean | undefined; }): LearningSettingsState;