import { type Skill } from "@mariozechner/pi-coding-agent";
import type { FasedAgentConfig } from "../../config/config.js";
import type { SkillEligibilityContext, SkillCommandSpec, SkillEntry, SkillSnapshot } from "./types.js";
export declare function formatSkillsCompact(skills: Skill[]): string;
export declare function buildWorkspaceSkillSnapshot(workspaceDir: string, opts?: WorkspaceSkillBuildOptions & {
    snapshotVersion?: number;
}): SkillSnapshot;
export declare function buildWorkspaceSkillsPrompt(workspaceDir: string, opts?: WorkspaceSkillBuildOptions): string;
type WorkspaceSkillBuildOptions = {
    config?: FasedAgentConfig;
    managedSkillsDir?: string;
    bundledSkillsDir?: string;
    entries?: SkillEntry[];
    agentId?: string;
    /** If provided, only include skills with these names */
    skillFilter?: string[];
    eligibility?: SkillEligibilityContext;
};
export declare function resolveSkillsPromptForRun(params: {
    skillsSnapshot?: SkillSnapshot;
    entries?: SkillEntry[];
    config?: FasedAgentConfig;
    workspaceDir: string;
    agentId?: string;
}): string;
export declare function loadWorkspaceSkillEntries(workspaceDir: string, opts?: {
    config?: FasedAgentConfig;
    managedSkillsDir?: string;
    bundledSkillsDir?: string;
    agentId?: string;
    eligibility?: SkillEligibilityContext;
}): SkillEntry[];
export declare function syncSkillsToWorkspace(params: {
    sourceWorkspaceDir: string;
    targetWorkspaceDir: string;
    config?: FasedAgentConfig;
    agentId?: string;
    skillFilter?: string[];
    eligibility?: SkillEligibilityContext;
    managedSkillsDir?: string;
    bundledSkillsDir?: string;
}): Promise<void>;
export declare function filterWorkspaceSkillEntries(entries: SkillEntry[], config?: FasedAgentConfig): SkillEntry[];
export declare function buildWorkspaceSkillCommandSpecs(workspaceDir: string, opts?: {
    config?: FasedAgentConfig;
    managedSkillsDir?: string;
    bundledSkillsDir?: string;
    entries?: SkillEntry[];
    agentId?: string;
    skillFilter?: string[];
    eligibility?: SkillEligibilityContext;
    reservedNames?: Set<string>;
}): SkillCommandSpec[];
export {};
