/** Skill attribution rules for trace records. */
import type { CcAssistantRecord, CcUserRecord } from './trace-source.js';
export interface SkillRef {
    skillName: string;
    rawSkillRef: string;
    pluginName?: string;
}
export declare function extractMarkdownLogSkill(text: string): string | null;
/**
 * 归一化 skill 名: 去掉 plugin 前缀, 过滤 cc 内置命令。
 * - "impeccable:audit" → "audit"
 * - "pbakaus/impeccable:audit" → "audit"
 * - "clear" / "exit" 等 → null(表示不是 skill)
 */
export declare function normalizeSkillName(raw: string): string | null;
export declare function parseSkillRef(raw: string): SkillRef | null;
export declare function stripCommandEnvelopeText(text: string): string;
export declare function extractCommandEnvelopeText(text: string): string | null;
/**
 * 从 user message 里提取 slash-command skill 名字(信号 2)。
 * 返回 null 表示没命中。
 */
export declare function extractCommandSkill(record: CcUserRecord): string | null;
export declare function extractCommandSkillRef(record: CcUserRecord): SkillRef | null;
/**
 * 从 OpenClaw user message 的业务动作标签里提取 skill 名字(信号 4)。
 *
 * 注意: 真实 OpenClaw 数据里 name 可能是业务动作展示名, 不是稳定 skill id。
 * 只有 name 本身像 "prd-create" 这种 slug 时才用于 skill 归因;
 * 展示名继续保留在 sourceMetadata.businessActions 里, 不切 skill。
 */
export declare function extractBusinessActionSkillRef(record: CcUserRecord): SkillRef | null;
/**
 * 从 assistant message 的 tool_use 里提取 Skill tool 调用的 skill 名字(信号 1)。
 * 返回 null 表示没命中。
 */
export declare function extractSkillToolUse(record: CcAssistantRecord): string | null;
export declare function extractSkillToolUseRef(record: CcAssistantRecord): SkillRef | null;
export declare function extractAttributionSkill(record: CcAssistantRecord): string | null;
export declare function extractAttributionSkillRef(record: CcAssistantRecord): SkillRef | null;
/**
 * 从 assistant message 的 Read tool_use 里提取 skill 名字(信号 3, fallback)。
 * 匹配 file_path 形如 ".claude/skills/<name>/SKILL.md"
 * 或 ".openclaw/workspace/skills/<name>/SKILL.md" 的模式。
 * 返回 null 表示没命中。
 */
export declare function extractSkillReadFile(record: CcAssistantRecord): string | null;
export declare function extractSkillReadFileRef(record: CcAssistantRecord): SkillRef | null;
/**
 * 从 OpenClaw cron/user 文本或 Bash/exec tool command 里提取 skill 脚本路径。
 *
 * cron 型 OpenClaw session 通常没有业务动作标签或 Skill tool_use,
 * 只会直接执行 ~/.openclaw/workspace-main/skills/<skill>/scripts/*.sh。
 */
export declare function extractSkillScriptCommandRef(record: CcUserRecord | CcAssistantRecord): SkillRef | null;
//# sourceMappingURL=trace-attribution.d.ts.map