import { Name } from 'thaw-interpreter-core';
import { IEnvironmentFrame } from './environment-frame';
import { IExpression } from './iexpression';
import { IGlobalInfo } from './iglobal-info';
export declare class OperatorUsage<T> implements IExpression<T> {
    readonly operatorName: Name;
    readonly expressionList: IExpression<T>[];
    private readonly twoArgumentIntegerPredicates;
    private readonly twoArgumentIntegerOperators;
    constructor(operatorName: Name, expressionList: IExpression<T>[]);
    toString(): string;
    evaluate(globalInfo: IGlobalInfo<T>, localEnvironment?: IEnvironmentFrame<T>, options?: unknown): T;
    protected tryGetExpectedNumArgs(globalInfo: IGlobalInfo<T>): number | undefined;
    protected checkArgTypes(evaluatedArguments: T[]): string | undefined;
    protected evaluateAux(evaluatedArguments: T[], globalInfo: IGlobalInfo<T>, localEnvironment?: IEnvironmentFrame<T>, options?: unknown): T;
}
//# sourceMappingURL=operator-usage.d.ts.map