UNPKG

thingmodel

Version:

Synchronize data and models across multiple devices

284 lines (236 loc) 7.44 kB
declare module ThingModel.Proto { interface ProtoBufModel { toArrayBuffer(): ArrayBuffer; //toBuffer(): NodeBuffer; //encode(): ByteBuffer; toBase64(): string; toString(): string; } export interface ProtoBufBuilder { Property: PropertyBuilder; PropertyType: PropertyTypeBuilder; StringDeclaration: StringDeclarationBuilder; Thing: ThingBuilder; ThingType: ThingTypeBuilder; Transaction: TransactionBuilder; } } declare module ThingModel.Proto { export interface Property extends ProtoBufModel { string_key: number; getStringKey(): number; setStringKey(stringKey: number): void; type: Property.Type; getType(): Property.Type; setType(type: Property.Type): void; location_value?: Property.Location; getLocationValue(): Property.Location; setLocationValue(locationValue: Property.Location): void; string_value?: Property.String; getStringValue(): Property.String; setStringValue(stringValue: Property.String): void; double_value?: number; getDoubleValue(): number; setDoubleValue(doubleValue: number): void; int_value?: number; getIntValue(): number; setIntValue(intValue: number): void; boolean_value?: boolean; getBooleanValue(): boolean; setBooleanValue(booleanValue: boolean): void; datetime_value?: number; getDatetimeValue(): number; setDatetimeValue(datetimeValue: number): void; } export interface PropertyBuilder { new(): Property; decode(buffer: ArrayBuffer): Property; //decode(buffer: NodeBuffer) : Property; //decode(buffer: ByteArrayBuffer) : Property; decode64(buffer: string): Property; Location: Property.LocationBuilder; String: Property.StringBuilder; Type: Property.Type; } } declare module ThingModel.Proto.Property { export interface Location extends ProtoBufModel { x: number; getX(): number; setX(x: number): void; y: number; getY(): number; setY(y: number): void; z?: number; getZ(): number; setZ(z: number): void; string_system?: number; getStringSystem(): number; setStringSystem(stringSystem: number): void; z_null?: boolean; getZNull(): boolean; setZNull(zNull: boolean): void; } export interface LocationBuilder { new(): Location; decode(buffer: ArrayBuffer): Location; //decode(buffer: NodeBuffer) : Location; //decode(buffer: ByteArrayBuffer) : Location; decode64(buffer: string): Location; } } declare module ThingModel.Proto.Property { export interface String extends ProtoBufModel { value?: string; getValue(): string; setValue(value: string): void; string_value?: number; getStringValue(): number; setStringValue(stringValue: number): void; } export interface StringBuilder { new(): String; decode(buffer: ArrayBuffer): String; //decode(buffer: NodeBuffer) : String; //decode(buffer: ByteArrayBuffer) : String; decode64(buffer: string): String; } } declare module ThingModel.Proto.Property { export enum Type { LOCATION_POINT = 0, LOCATION_LATLNG = 1, LOCATION_EQUATORIAL = 2, STRING = 3, DOUBLE = 4, INT = 5, BOOLEAN = 6, DATETIME = 7, } } declare module ThingModel.Proto { export interface PropertyType extends ProtoBufModel { string_key: number; getStringKey(): number; setStringKey(stringKey: number): void; type: PropertyType.Type; getType(): PropertyType.Type; setType(type: PropertyType.Type): void; required: boolean; getRequired(): boolean; setRequired(required: boolean): void; string_name?: number; getStringName(): number; setStringName(stringName: number): void; string_description?: number; getStringDescription(): number; setStringDescription(stringDescription: number): void; } export interface PropertyTypeBuilder { new(): PropertyType; decode(buffer: ArrayBuffer): PropertyType; //decode(buffer: NodeBuffer) : PropertyType; //decode(buffer: ByteArrayBuffer) : PropertyType; decode64(buffer: string): PropertyType; Type: PropertyType.Type; } } declare module ThingModel.Proto.PropertyType { export enum Type { LOCATION = 0, STRING = 1, DOUBLE = 2, INT = 3, BOOLEAN = 4, DATETIME = 5, } } declare module ThingModel.Proto { export interface StringDeclaration extends ProtoBufModel { value: string; getValue(): string; setValue(value: string): void; key: number; getKey(): number; setKey(key: number): void; } export interface StringDeclarationBuilder { new(): StringDeclaration; decode(buffer: ArrayBuffer): StringDeclaration; //decode(buffer: NodeBuffer) : StringDeclaration; //decode(buffer: ByteArrayBuffer) : StringDeclaration; decode64(buffer: string): StringDeclaration; } } declare module ThingModel.Proto { export interface Thing extends ProtoBufModel { string_id: number; getStringId(): number; setStringId(stringId: number): void; string_type_name: number; getStringTypeName(): number; setStringTypeName(stringTypeName: number): void; properties: Property[]; getProperties(): Property[]; setProperties(properties: Property[]): void; connections: number[]; getConnections(): number[]; setConnections(connections: number[]): void; connections_change?: boolean; getConnectionsChange(): boolean; setConnectionsChange(connectionsChange: boolean): void; } export interface ThingBuilder { new(): Thing; decode(buffer: ArrayBuffer): Thing; //decode(buffer: NodeBuffer) : Thing; //decode(buffer: ByteArrayBuffer) : Thing; decode64(buffer: string): Thing; } } declare module ThingModel.Proto { export interface ThingType extends ProtoBufModel { string_name: number; getStringName(): number; setStringName(stringName: number): void; string_description?: number; getStringDescription(): number; setStringDescription(stringDescription: number): void; properties: PropertyType[]; getProperties(): PropertyType[]; setProperties(properties: PropertyType[]): void; } export interface ThingTypeBuilder { new(): ThingType; decode(buffer: ArrayBuffer): ThingType; //decode(buffer: NodeBuffer) : ThingType; //decode(buffer: ByteArrayBuffer) : ThingType; decode64(buffer: string): ThingType; } } declare module ThingModel.Proto { export interface Transaction extends ProtoBufModel { string_declarations: StringDeclaration[]; getStringDeclarations(): StringDeclaration[]; setStringDeclarations(stringDeclarations: StringDeclaration[]): void; things_publish_list: Thing[]; getThingsPublishList(): Thing[]; setThingsPublishList(thingsPublishList: Thing[]): void; things_remove_list: number[]; getThingsRemoveList(): number[]; setThingsRemoveList(thingsRemoveList: number[]): void; thingtypes_declaration_list: ThingType[]; getThingtypesDeclarationList(): ThingType[]; setThingtypesDeclarationList(thingtypesDeclarationList: ThingType[]): void; string_sender_id: number; getStringSenderId(): number; setStringSenderId(stringSenderId: number): void; } export interface TransactionBuilder { new(): Transaction; decode(buffer: ArrayBuffer): Transaction; //decode(buffer: NodeBuffer) : Transaction; //decode(buffer: ByteArrayBuffer) : Transaction; decode64(buffer: string): Transaction; } }