export interface SkillsPayload {
    op?: unknown;
    name?: unknown;
}
export type SkillsResult = {
    ok: true;
    result: {
        op: 'read';
        name: string;
        body: string;
        available: boolean;
        unavailableReason?: string;
    } | {
        op: 'list';
        skills: Array<{
            name: string;
            description: string;
            source: string;
            available: boolean;
            always: boolean;
        }>;
    } | {
        op: 'refresh';
        total: number;
    };
} | {
    ok: false;
    error: string;
};
/**
 * Single entry point — the bus picks `op` and we dispatch. Three ops
 * supported in this initial cut:
 *
 *   - 'read' (default): return one skill's full body. Agent uses this
 *     when its tier-1 summary description matches user intent.
 *   - 'list':           return the full skill roster. Useful when the
 *     agent wants to introspect what's available without scrolling the
 *     entire system prompt.
 *   - 'refresh':        force a disk re-scan. Operator-only in spirit;
 *     we don't enforce, but the operation is cheap enough that abuse
 *     just wastes the calling agent's iteration budget.
 */
export declare function handleSkillsOp(payload: SkillsPayload): Promise<SkillsResult>;
//# sourceMappingURL=skills-rpc.d.ts.map