import { IEnvironmentFrame } from './environment-frame';
import { IExpression } from './iexpression';
import { IGlobalInfo } from './iglobal-info';
export declare function isVariableT<T>(obj: unknown): obj is Variable<T>;
export interface IVariable<T> extends IExpression<T> {
    readonly name: string;
    readonly line: number;
    readonly column: number;
}
export declare class Variable<T> implements IVariable<T> {
    readonly name: string;
    readonly line: number;
    readonly column: number;
    readonly typename: string;
    constructor(name: string, line?: number, column?: number);
    toString(): string;
    evaluate(globalInfo: IGlobalInfo<T>, localEnvironment?: IEnvironmentFrame<T>, options?: unknown): T;
}
//# sourceMappingURL=variable.d.ts.map