/**
 * Skill invocation helpers.
 *
 * `substituteVariables` is the only piece of the invocation path that runs
 * for every skill: it inlines `{{wallet_balance}}` and similar runtime
 * context, then expands `$ARGUMENTS` to the trailing slash-command argument.
 *
 * Both substitutions use function-form replacement so that values containing
 * `$` or other replacement-pattern meta-characters (like a user task that
 * mentions "find $5 of value") are inserted verbatim.
 */
export declare function substituteVariables(body: string, vars: Record<string, string>, args: string): string;
import type { Registry } from './registry.js';
export interface SkillMatch {
    rewritten: string;
}
/**
 * Pure dispatch: given a slash-command input line, look up the skill in the
 * registry, render its body against runtime variables and arguments, and
 * return the prompt the agent should run. Returns null when the input is
 * not a slash command, the slash is bare, or no skill of that name exists.
 */
export declare function matchSkill(input: string, registry: Registry, vars: Record<string, string>): SkillMatch | null;
