export type PluginScope = "user" | "project" | "local";
export interface InstalledPlugin {
    name: string;
    marketplace: string;
    version: string;
    scope: PluginScope;
    enabled: boolean;
}
export interface Marketplace {
    name: string;
    source: string;
}
export interface ClaudeCliResult {
    stdout: string;
    stderr: string;
    code: number | null;
}
/**
 * Run a `claude plugin ...` command. Returns captured stdout/stderr/code.
 * Does NOT throw on non-zero exit — callers decide how to interpret failure.
 */
export declare function runClaudePlugin(args: string[], opts?: {
    cwd?: string;
    timeout?: number;
}): Promise<ClaudeCliResult>;
/**
 * Parse the output of `claude plugin list`. Expected block shape per plugin:
 *
 *   ❯ <name>@<marketplace>
 *     Version: <semver>
 *     Scope: <user|project|local>
 *     Status: <check> enabled   |   <x> disabled
 *
 * Returns [] when the output has no plugins (e.g., "No installed plugins.").
 */
export declare function parseInstalledPlugins(stdout: string): InstalledPlugin[];
/**
 * Parse the output of `claude plugin marketplace list`. Expected per entry:
 *
 *   ❯ <name>
 *     Source: <kind> (<detail>)
 */
export declare function parseMarketplaces(stdout: string): Marketplace[];
