import { RuntimeBase } from './runtime-base';
import type { BaseExpressionEvaluator } from '../core/base-expression-evaluator';
import type { ParserInterface } from '../parser/parser-interface';
import type { ExecutionContext } from '../types/core';
export interface TreeShakeableRuntimeOptions {
    expressionEvaluator: BaseExpressionEvaluator;
    enableAsyncCommands?: boolean;
    commandTimeout?: number;
    enableErrorReporting?: boolean;
    enableResultPattern?: boolean;
}
export interface RuntimeOptions {
    commands: Array<() => any>;
    expressions?: Record<string, any>[];
    parser?: ParserInterface;
    enableAsyncCommands?: boolean;
    commandTimeout?: number;
    enableErrorReporting?: boolean;
}
export interface LokaScriptRuntime {
    runtime: RuntimeBase;
    parser?: ParserInterface;
    run(code: string, element?: Element): Promise<unknown>;
    execute(ast: any, context: ExecutionContext): Promise<unknown>;
    parse(code: string): any;
}
export declare function createTreeShakeableRuntime(commands: any[], options: TreeShakeableRuntimeOptions): RuntimeBase;
export declare function createRuntime(options: RuntimeOptions): LokaScriptRuntime;
export type { BaseExpressionEvaluator, ParserInterface };
//# sourceMappingURL=runtime-factory.d.ts.map