import type { InlineSkill } from '@inharness-ai/agent-adapters';
export type SkillScope = 'writing-style' | 'contextual';
export interface SkillMetadata {
    slug: string;
    title: string;
    description: string;
    version: number;
    language: 'en' | 'pl';
    scope: SkillScope;
    path: string;
}
export interface ResolvedSkill {
    metadata: SkillMetadata;
    content: string;
    files: Record<string, string>;
}
export declare class SkillRegistry {
    private metadataBySlug;
    static load(skillsDir: string): SkillRegistry;
    list(): SkillMetadata[];
    listSelectable(): SkillMetadata[];
    has(slug: string): boolean;
    isSelectable(slug: string): boolean;
    resolve(slug: string): ResolvedSkill;
}
export declare class SkillResolver {
    private readonly registry;
    private readonly cwd;
    constructor(registry: SkillRegistry, cwd: string);
    /**
     * Resolved per query — `readConfig` reads `.claude4spec/config.json` from disk
     * each call, so editing config.json between turns takes effect on the next
     * `POST /api/chat`. Returns `[]` when no style is active or registry doesn't
     * know the slug (defensive — startup validation should catch the latter).
     */
    resolve(): InlineSkill[];
}
export declare function findSkillsDir(): string;
