@mcesystems/nbind
Version:
Magical headers that make your C++ library accessible from JavaScript
70 lines (69 loc) • 2.15 kB
TypeScript
import { Binding } from './nbind';
import { SignatureType } from './common';
import { TypeSpec, TypeClass } from './Type';
export declare type TypeBase = TypeClass;
export declare const TypeBase: new (spec: TypeSpec) => TypeClass;
export declare class BindType extends TypeBase {
constructor(spec: TypeSpec);
isClass: boolean;
}
export declare class BindClass extends BindType {
addSuper(superClass: BindClass): void;
addMethod(name: string, kind: SignatureType, typeList: BindType[], policyList: string[]): void;
addProperty(name: string, kind: SignatureType, typeList: BindType[], policyList: string[]): void;
name: string;
superList: BindClass[];
methodTbl: {
[name: string]: BindMethod;
};
methodList: BindMethod[];
propertyTbl: {
[name: string]: BindProperty;
};
propertyList: BindProperty[];
}
export declare class BindMethod {
constructor(bindClass: BindClass, name: string, returnType: BindType, argTypeList: BindType[], policyList: string[], isStatic: boolean);
toString(): string;
bindClass: BindClass;
name: string;
returnType: BindType;
argTypeList: BindType[];
policyList: string[];
isStatic: boolean;
}
export declare class BindProperty {
constructor(bindClass: BindClass, name: string);
makeReadable(bindType: BindType): void;
makeWritable(bindType: BindType): void;
toString(): string;
bindClass: BindClass;
name: string;
bindType: BindType;
isReadable: boolean;
isWritable: boolean;
}
export declare class Reflect {
constructor(binding: Binding<any>);
private readPrimitive;
private readType;
private readClass;
private readSuper;
private readMethod;
private getType;
private queryType;
dumpPseudo(): string;
private constructType;
skipNameTbl: {
[key: string]: boolean;
};
binding: Binding<any>;
typeIdTbl: {
[id: number]: BindType;
};
typeNameTbl: {
[name: string]: BindType;
};
globalScope: BindClass;
classList: BindClass[];
}