import { Environment } from "./Environment";
import { RuntimeBag } from "./RuntimeBag";
import { TokenArgument, TokenCall } from "./Lexer";
import { Runtime, RuntimeOptions } from "./Runtime";
declare class Context {
    fileName: string;
    bag: RuntimeBag;
    env: Environment;
    runtime: Runtime;
    private _target;
    options: RuntimeOptions;
    constructor(fileName: string, bag: RuntimeBag, env: Environment, runtime: Runtime);
    callIdentifier(node: TokenCall): Promise<any>;
    /**
     * Returns a true if provided arguments exists
     * @param amount - Amount of argument required
     * @param throwError - Throw error automatically
     * @returns
     */
    argsCheck(amount?: number, throwError?: boolean): boolean;
    /**
     * Return arguments from `start` up to `end`
     * @param start - The start of index
     * @param end - Amount of argument returned
     * @returns
     */
    getArgs(start?: number, end?: number): TokenArgument[];
    /**
     * Evaluate and run provided arguments
     * @param args - Arguments to run
     * @returns
     */
    evaluateArgs(args: TokenArgument[]): Promise<any[]>;
}
export { Context };
