import type { ExecutionContext, TypedExecutionContext } from '../../types/core';
import type { ASTNode, ExpressionNode } from '../../types/base-types';
import type { ExpressionEvaluator } from '../../core/expression-evaluator';
export interface RenderCommandInput {
    template: unknown;
    variables?: Record<string, unknown>;
}
export interface RenderCommandOutput {
    element: Element | null;
    rendered: string;
    directivesProcessed: string[];
}
export declare class RenderCommand {
    readonly name = "render";
    static readonly metadata: {
        readonly description: "Render templates with @if, @else, and @repeat directives";
        readonly syntax: readonly ["render <template>", "render <template> with <variables>", "render <template> with (key: value, ...)"];
        readonly examples: readonly ["render myTemplate", "render myTemplate with (name: \"Alice\")", "render \"<template>Hello ${name}!</template>\" with (name: \"World\")", "render template with (items: data)"];
        readonly category: "templates";
        readonly sideEffects: readonly ["dom-creation", "template-execution"];
    };
    get metadata(): {
        readonly description: "Render templates with @if, @else, and @repeat directives";
        readonly syntax: readonly ["render <template>", "render <template> with <variables>", "render <template> with (key: value, ...)"];
        readonly examples: readonly ["render myTemplate", "render myTemplate with (name: \"Alice\")", "render \"<template>Hello ${name}!</template>\" with (name: \"World\")", "render template with (items: data)"];
        readonly category: "templates";
        readonly sideEffects: readonly ["dom-creation", "template-execution"];
    };
    parseInput(raw: {
        args: ASTNode[];
        modifiers: Record<string, ExpressionNode>;
    }, evaluator: ExpressionEvaluator, context: ExecutionContext): Promise<RenderCommandInput>;
    execute(input: RenderCommandInput, context: TypedExecutionContext): Promise<RenderCommandOutput>;
    private extractTemplateContent;
    private createTemplateContext;
    private processTemplate;
    private processRepeatDirective;
    private processIfDirective;
    private extractDirectiveBlock;
    private extractIfElseBlock;
    private processVariableInterpolation;
    private evaluateExpression;
    private resolveVariable;
    private escapeHtml;
    private createDOMElement;
}
export declare function createRenderCommand(): RenderCommand;
//# sourceMappingURL=render.d.ts.map