/// <reference types="node" />
import { Callable } from './Callable';
import util from 'util';
import CallableFunction from './CallableFunction';
import Instance from './Instance';
export default class Class implements Callable {
    readonly name: string;
    readonly superclass: Class;
    private readonly methods;
    readonly properties: Map<string, any>;
    constructor(name: string, superclass: Class, methods: Map<string, CallableFunction>, properties: Map<string, any>);
    findMethod(name: string): CallableFunction;
    findProperty(name: string): any;
    set(name: string, value: any): void;
    setMethod(method: CallableFunction): void;
    createInstance(args: any[]): Instance;
    get arity(): number;
    call(args: any[]): Instance;
    [util.inspect.custom](): string;
}
