import type { Token, CommandNode, ExpressionNode, ASTNode, StatementNode } from '../types/core';
export declare class CommandNodeBuilder {
    private name;
    private args;
    private body?;
    private implicitTarget?;
    private isBlocking;
    private modifiers?;
    private startPos?;
    private endPos?;
    private constructor();
    static from(token: Token): CommandNodeBuilder;
    static fromIdentifier(node: {
        name: string;
        start?: number;
        end?: number;
        line?: number;
        column?: number;
    }): CommandNodeBuilder;
    static named(name: string): CommandNodeBuilder;
    withArgs(...args: ASTNode[]): this;
    withBody(body: StatementNode[]): this;
    withImplicitTarget(target: ExpressionNode): this;
    withModifier(key: string, value: ExpressionNode): this;
    withModifiers(modifiers: Record<string, ExpressionNode>): this;
    blocking(value?: boolean): this;
    startingAt(source: Token | {
        start?: number;
        end?: number;
        line?: number;
        column?: number;
    }): this;
    endingAt(position: {
        start?: number;
        end: number;
        line?: number;
        column?: number;
    }): this;
    build(): CommandNode;
    clone(): CommandNodeBuilder;
}
//# sourceMappingURL=command-node-builder.d.ts.map