import type { ExecutionContext, TypedExecutionContext } from '../../types/core';
import type { ASTNode, ExpressionNode } from '../../types/base-types';
import type { ExpressionEvaluator } from '../../core/expression-evaluator';
import { type DecoratedCommand, type CommandMetadata } from '../decorators';
export interface JsCommandInput {
    code: string;
    parameters?: string[];
}
export interface JsCommandOutput {
    result: any;
    executed: boolean;
    codeLength: number;
    parameters?: string[];
    preserveArrayResult: true;
}
export declare class JsCommand implements DecoratedCommand {
    readonly name: string;
    readonly metadata: CommandMetadata;
    parseInput(raw: {
        args: ASTNode[];
        modifiers: Record<string, ExpressionNode>;
    }, _evaluator: ExpressionEvaluator, _context: ExecutionContext): Promise<JsCommandInput>;
    execute(input: JsCommandInput, context: TypedExecutionContext): Promise<JsCommandOutput>;
    private createExecutionContext;
}
export declare const createJsCommand: () => JsCommand;
export default JsCommand;
//# sourceMappingURL=js.d.ts.map