declare module lib_shape { /** * @author fenris */ type type_inspection = { messages: Array; }; /** * @author fenris */ type type_shape = { name: string; parameters?: Object; }; /** * @author fenris */ function list(): Array; /** * @author fenris */ function inspection_create(): type_inspection; /** * @author fenris */ function inspection_add(main: type_inspection, message: string): void; /** * @author fenris */ function inspection_extend(main: type_inspection, prefix: string, sub: type_inspection): void; /** * @author fenris * @todo check for existing */ function register({ "name": name, "make": make, "inspect": _inspect, "stance": _stance, "show": _show, }: { name: string; make: (raw: Object, _make?: (raw: Object) => type_shape) => Object; inspect: (parameters: Object, value: any, _inspect?: (shape: type_shape, value: any) => type_inspection) => type_inspection; stance: (parameters: Object, bindings: { [name: string]: type_shape; }, _stance?: (shape: type_shape, bindings: { [name: string]: type_shape; }) => type_shape) => type_shape; show: (parameters: Object, _show?: (shape: type_shape) => string) => string; }): void; /** * @author fenris * @todo check for existing */ function define_alias({ "name": name, "target": target, }: { name: string; target: type_shape; }): void; /** * @author fenris * @todo check for existing */ /** * @author fenris */ function make(raw: Object): type_shape; /** * @author fenris */ function inspect(shape: type_shape, value: any): type_inspection; /** * @author fenris */ function check(shape: type_shape, value: any): boolean; /** * @author fenris */ function stance(shape: type_shape, bindings: { [name: string]: type_shape; }): type_shape; /** * @author fenris */ function show(shape: type_shape): string; } declare module lib_shape { } declare module lib_shape { } declare module lib_shape { } declare module lib_shape { } declare module lib_shape { } declare module lib_shape { } declare module lib_shape { } declare module lib_shape { } declare module lib_shape { } declare module lib_shape { } declare module lib_shape { } declare module lib_shape { } declare module lib_shape { } declare module lib_shape { } declare module lib_shape { } declare module lib_shape { } declare module lib_shape { } declare module lib_shape { } declare module lib_shape { } declare module lib_shape { /** * @author fenris * @todo use a treemap-function (but first make one :P) */ function adjust_labels(shape: type_shape, transformator: (label_old: string) => string): type_shape; /** * @author fenris */ function register_(id: string, factory: (parameters: Object) => type_shape): void; /** * @author fenris */ function retrieve_(id: string): type_shape; }