import { IParser, ITokenizer } from 'thaw-interpreter-types';
import { BetaReductionStrategy, ILCExpression, IUnifiable } from './domain-object-model/interfaces/expression';
export declare const defaultBetaReductionStrategy = BetaReductionStrategy.NormalOrder;
export declare const defaultMaxBetaReductionDepth = 30;
export declare function getParseFunction(tokenizer: ITokenizer, parser: IParser): (str: string) => ILCExpression;
export declare function createVariableNameGenerator(): () => string;
export declare function reduce(expr: ILCExpression, options?: {
    readonly strategy?: BetaReductionStrategy;
    readonly generateNewVariableName?: () => string;
    readonly maxDepth?: number;
}): ILCExpression;
export declare function getfb1(f: (str: string) => ILCExpression, options?: {
    readonly strategy?: BetaReductionStrategy;
    readonly generateNewVariableName?: () => string;
    readonly maxDepth?: number;
}): (s: string) => ILCExpression;
export declare function getfb2(tokenizer: ITokenizer, parser: IParser, options?: {
    readonly strategy?: BetaReductionStrategy;
    readonly generateNewVariableName?: () => string;
    readonly maxDepth?: number;
}): (s: string) => ILCExpression;
export declare function areIsomorphic<T>(expr1: IUnifiable<T>, expr2: IUnifiable<T>): boolean;
//# sourceMappingURL=utilities.d.ts.map