import type { ExecutionContext, TypedExecutionContext } from '../../types/core';
import type { ASTNode, ExpressionNode } from '../../types/base-types';
import type { ExpressionEvaluator } from '../../core/expression-evaluator';
export interface InstallCommandInput {
    behaviorName: string;
    parameters?: Record<string, unknown>;
    target?: unknown;
}
export interface InstallCommandOutput {
    success: boolean;
    behaviorName: string;
    installedCount: number;
    instances: unknown[];
}
export declare class InstallCommand {
    readonly name = "install";
    static readonly metadata: {
        readonly description: "Install a behavior on an element with optional parameters";
        readonly syntax: readonly ["install <BehaviorName>", "install <BehaviorName> on <element>", "install <BehaviorName>(param: value)", "install <BehaviorName>(param: value) on <element>"];
        readonly examples: readonly ["install Removable", "install Draggable on #box", "install Tooltip(text: \"Help\", position: \"top\")", "install Sortable(axis: \"y\") on .list", "install MyBehavior(foo: 42) on the first <div/>"];
        readonly category: "behaviors";
        readonly sideEffects: readonly ["behavior-installation", "element-modification"];
    };
    get metadata(): {
        readonly description: "Install a behavior on an element with optional parameters";
        readonly syntax: readonly ["install <BehaviorName>", "install <BehaviorName> on <element>", "install <BehaviorName>(param: value)", "install <BehaviorName>(param: value) on <element>"];
        readonly examples: readonly ["install Removable", "install Draggable on #box", "install Tooltip(text: \"Help\", position: \"top\")", "install Sortable(axis: \"y\") on .list", "install MyBehavior(foo: 42) on the first <div/>"];
        readonly category: "behaviors";
        readonly sideEffects: readonly ["behavior-installation", "element-modification"];
    };
    parseInput(raw: {
        args: ASTNode[];
        modifiers: Record<string, ExpressionNode>;
    }, evaluator: ExpressionEvaluator, context: ExecutionContext): Promise<InstallCommandInput>;
    execute(input: InstallCommandInput, context: TypedExecutionContext): Promise<InstallCommandOutput>;
    private resolveTarget;
    private behaviorExists;
    private installBehavior;
}
export declare function createInstallCommand(): InstallCommand;
//# sourceMappingURL=install.d.ts.map