import { IEnvironmentFrame } from '../../../common/domain-object-model/environment-frame';
import { IExpression } from '../../../common/domain-object-model/iexpression';
import { IGlobalInfo } from '../../../common/domain-object-model/iglobal-info';
import { IVariable } from '../../../common/domain-object-model/variable';
import { ISExpression } from '../../lisp/domain-object-model/isexpression';
import { SExpressionBase } from '../../lisp/domain-object-model/sexpression-base';
import { ICallableSExpression } from './icallable-sexpression';
export declare class Closure extends SExpressionBase implements ICallableSExpression {
    readonly argList: IVariable<ISExpression>[];
    readonly body: IExpression<ISExpression>;
    readonly closureEnvironment: IEnvironmentFrame<ISExpression>;
    readonly line: number;
    readonly column: number;
    constructor(argList: IVariable<ISExpression>[], body: IExpression<ISExpression>, closureEnvironment: IEnvironmentFrame<ISExpression>, line?: number, column?: number);
    call(expressionList: IExpression<ISExpression>[], localEnvironment: IEnvironmentFrame<ISExpression>, globalInfo: IGlobalInfo<ISExpression>): ISExpression;
    isClosure(): boolean;
    toString(): string;
    evaluate(globalInfo: IGlobalInfo<ISExpression>, localEnvironment?: IEnvironmentFrame<ISExpression>, options?: unknown): ISExpression;
}
//# sourceMappingURL=closure.d.ts.map