import type { LLMMessage } from './llm-message.js'; type LearnedToolCall = { id: string; name: string; input: Record; failed: boolean; }; export type PersistedConversationSkill = { skillId: string; path: string; sourceKind: 'conversation'; toolNames: string[]; gate: 'strict' | 'intent' | 'legacy'; }; export type SkillLearningIntent = { detected: boolean; customSlug?: string; }; export interface ConversationSkillLearnerInput { skillsDir: string; sessionKey: string; messages: LLMMessage[]; userMessage?: string; assistantText?: string; intent?: SkillLearningIntent; minToolCalls?: number; } /** @internal Exported for testing — redacts secrets from free-text fields. */ export declare function buildSkillMarkdown(input: { skillId: string; userMessage: string; assistantText: string; sessionKey: string; calls: LearnedToolCall[]; createdAt: number; intent?: SkillLearningIntent; gate: 'strict' | 'intent' | 'legacy'; }): string; export declare function detectSkillLearningIntent(userMessage: string): SkillLearningIntent; export declare function maybePersistConversationSkill(input: ConversationSkillLearnerInput): Promise; export {}; //# sourceMappingURL=conversation-skill-learner.d.ts.map