/** * @global * @namespace Backendless */ declare module __Backendless { import Backendless = __Backendless; var serverURL:string; var applicationId:string; var secretKey:string; var appPath:string; var XMLHttpRequest:any; var browser:{ browser:string; version:string; }; /** * @dictionary */ var PublishOptionsHeaders:{ [key: string]: string; }; /** * @public * @type: Function **/ function initApp(applicationId:string, jsSecretKey:string):void; /** * @public * @type: Function **/ function setupDevice(deviceProps:Object):void; /** * @public * @type: Function **/ function setUIState(state:string):void; /** * @namespace Backendless.LocalCache **/ var LocalCache:Backendless.LocalCacheI; /** * @namespace Backendless.Persistence **/ var Persistence:Backendless.PersistenceClass; /** * @namespace Backendless.Data **/ var Data:Backendless.PersistenceClass; /** * @namespace Backendless.UserService **/ var UserService:Backendless.UserServiceClass; /** * @namespace Backendless.Geo **/ var Geo:Backendless.GeoClass; /** * @namespace Backendless.Messaging **/ var Messaging:Backendless.MessagingClass; /** * @namespace Backendless.Files **/ var Files:Backendless.FilesClass; /** * @namespace Backendless.Commerce **/ var Commerce:Backendless.CommerceClass; /** * @namespace Backendless.Events **/ var Events:Backendless.EventsClass; /** * @namespace Backendless.Cache **/ var Cache:Backendless.CacheClass; /** * @namespace Backendless.Counters **/ var Counters:Backendless.CountersClass; /** * @namespace Backendless.CustomServices **/ var CustomServices:Backendless.CustomServicesClass; /** * @namespace Backendless.Logging **/ var Logging:LoggingI; /** * @private * @class Async * @constructor */ class Async { constructor(onSuccess?:(data?:Object) => void, onError?:((data:Object) => void) | Object, context?:Object); success(data:Object):void; fault(data:Object):void; } /** * @public * @class Backendless.User * @constructor */ class User { ___class:string; username:string; password:string; email:string; } /** * @private * @class DataQuery * @constructor */ class DataQuery implements Backendless.DataQueryValueI { properties:string[]; condition:string; options:Object; url:string; addProperty(prop:string):void; setOption(name:string, value:string|Array|number):void; setOptions(options:Object):void; getOption(name:string):string|Array|number; toJSON():Object; } /** * @public * @class Backendless.DataQueryBuilder * @constructor */ class DataQueryBuilder { static create():Backendless.DataQueryBuilder; setPageSize(pageSize:number):Backendless.DataQueryBuilder; setOffset(offset:number):Backendless.DataQueryBuilder; prepareNextPage():Backendless.DataQueryBuilder; preparePreviousPage():Backendless.DataQueryBuilder; getProperties():Array; setProperties(properties:string):Backendless.DataQueryBuilder; addProperty(properties:string):Backendless.DataQueryBuilder; getWhereClause():string; setWhereClause(whereClause:string):Backendless.DataQueryBuilder; getSortBy():Array; setSortBy(sortBy:string|Array):Backendless.DataQueryBuilder; getRelated():Array; setRelated(relations:string|Array):Backendless.DataQueryBuilder; getRelationsDepth():number; setRelationsDepth(relationsDepth:number):Backendless.DataQueryBuilder; build():Backendless.DataQueryValueI; } /** * @private * @class PagingQueryBuilder * @constructor */ class PagingQueryBuilder { offset:number; pageSize:number; setPageSize(pageSize:number):PagingQueryBuilder; setOffset(offset:number):PagingQueryBuilder; prepareNextPage():PagingQueryBuilder; preparePreviousPage():PagingQueryBuilder; build():Object; } /** * @public * @class Backendless.LoadRelationsQueryBuilder * @constructor */ class LoadRelationsQueryBuilder { static create():Backendless.LoadRelationsQueryBuilder; static of(RelationModel:Object):Backendless.LoadRelationsQueryBuilder; setRelationName(relationName:string):Backendless.LoadRelationsQueryBuilder; setPageSize(pageSize:number):Backendless.LoadRelationsQueryBuilder; setOffset(offset:number):Backendless.LoadRelationsQueryBuilder; prepareNextPage():Backendless.LoadRelationsQueryBuilder; preparePreviousPage():Backendless.LoadRelationsQueryBuilder; build():Backendless.DataQueryValueI; } /** * @public * @class Backendless.GeoPoint * @constructor */ class GeoPoint { ___class:string; objectId:string; latitude:number; longitude:number; categories:string|string[]; metadata:Object; } /** * @public * @class Backendless.GeoCluster * @extends GeoPoint * @constructor */ class GeoCluster extends Backendless.GeoPoint { totalPoints:number; geoQuery:Backendless.GeoQuery | Backendless.RectangleGeoQueryI | Backendless.CircleGeoQueryI; } /** * @public * @class Backendless.GeoQuery * @constructor */ class GeoQuery implements Backendless.GeoQueryI { categories:string|string[]; includeMetadata:boolean; metadata:Object; condition:string; relativeFindMetadata:Object; relativeFindPercentThreshold:number; pageSize:number; offset:number; } /** * @public * @class Backendless.PublishOptions * @constructor */ class PublishOptions { publisherId:string; headers:Object; subtopic:string; constructor(args?:Object); } /** * @public * @class Backendless.DeliveryOptions * @constructor */ class DeliveryOptions { publishPolicy:string; pushBroadcast:number; pushSinglecast:string[]; publishAt:number; repeatEvery:number; repeatExpiresAt:number; constructor(args?:Object); } /** * @public * @class Backendless.Bodyparts * @constructor */ class Bodyparts { textmessage:string; htmlmessage:string; constructor(args?:Object); } /** * @public * @class Backendless.SubscriptionOptions * @constructor */ class SubscriptionOptions { subscriberId:string; subtopic:string; selector:string; constructor(args?:Object); } /** * @private * @class Logger */ class Logger { debug(message:string):void; info(message:string):void; warn(message:string):void; error(message:string):void; fatal(message:string):void; trace(message:string):void; } /** * @private * @class Proxy */ class Proxy { eventHandlers:Object; on(eventName:string, handler:(data:any)=>any):void; fireEvent(eventName:string, data:any):void; } /** * @private * @class PollingProxy */ class PollingProxy extends Backendless.Proxy { restUrl:string; timer:number; timeout:number; interval:number; xhr:XMLHttpRequest; needReconnect:boolean; responder:Async; onMessage(data:any):void; poll():void; close():void; onTimeout():void; onError():void; } /** * @private * @class SocketProxy */ class SocketProxy extends Backendless.Proxy { reconnectWithPolling:boolean; socket:WebSocket; onMessage():void; onSocketClose(data):void; close():void; } /** * @private * @class DataStore */ class DataStore { model:Function|Object; className:string; restUrl:string; constructor(name:string|Object|Function); save(obj:Object):Promise; saveSync(obj:Object):Object; remove(id:Object|string):Promise; removeSync(obj:Object|string):Object; find(obj?:Backendless.DataQueryBuilder):Promise; findSync(obj?:Backendless.DataQueryBuilder):Array; findById(query:Object|string):Promise; findByIdSync(query:Object|string):Object; findFirst(query?:Object):Promise; findFirstSync(query?:Object):Object; findLast(query?:Object):Promise; findLastSync(query?:Object):Object; loadRelations(parentObjectId:string, query:Backendless.LoadRelationsQueryBuilder):Promise>; loadRelationsSync(parentObjectId:string, query:Backendless.LoadRelationsQueryBuilder):Array; getObjectCount(query?:Backendless.DataQueryBuilder):Promise getObjectCountSync(query?:Backendless.DataQueryBuilder):number setRelation(parentObject:Object, columnName:string, childObjectsArray:Array):Promise; setRelation(parentObject:Object, columnName:string, childObjectIdArray:Array):Promise; setRelation(parentObject:Object, columnName:string, whereClause:string):Promise; setRelationSync(parentObject:Object, columnName:string, childObjectsArray:Array):string; setRelationSync(parentObject:Object, columnName:string, childObjectIdArray:Array):string; setRelationSync(parentObject:Object, columnName:string, whereClause:string):string; addRelation(parentObject:Object, columnName:string, childObjectsArray:Array):Promise; addRelation(parentObject:Object, columnName:string, childObjectIdArray:Array):Promise; addRelation(parentObject:Object, columnName:string, whereClause:string):Promise; addRelationSync(parentObject:Object, columnName:string, childObjectsArray:Array):string; addRelationSync(parentObject:Object, columnName:string, childObjectIdArray:Array):string; addRelationSync(parentObject:Object, columnName:string, whereClause:string):string; deleteRelation(parentObject:Object, columnName:string, childObjectsArray:Array):Promise; deleteRelation(parentObject:Object, columnName:string, childObjectIdArray:Array):Promise; deleteRelation(parentObject:Object, columnName:string, whereClause:string):Promise; deleteRelationSync(parentObject:Object, columnName:string, childObjectsArray:Array):string; deleteRelationSync(parentObject:Object, columnName:string, childObjectIdArray:Array):string; deleteRelationSync(parentObject:Object, columnName:string, whereClause:string):string; bulkCreate(objectsArray:Array):Promise; bulkCreateSync(objectsArray:Array):string; bulkUpdate(templateObject:Object, whereClause:string):Promise; bulkUpdateSync(templateObject:Object, whereClause:string):string; bulkDelete(objectsArray:string|Array|Array):Promise; bulkDeleteSync(objectsArray:string|Array|Array):string; } /** * @private * @class Persistence * @refers {@link Backendless.Persistence} */ class PersistenceClass { /** * @namespace Backendless.Persistence.Permissions **/ Permissions:PersistencePermissionsClass; of(model:string|Object|Function):Backendless.DataStore; save(model:Backendless.DataStore|string, data:Object):Promise; saveSync(model:Backendless.DataStore|string, data:Object):Object; getView(viewName:string, whereClause?:string, pageSize?:number, offset?:number):Promise; getViewSync(viewName:string, whereClause?:string, pageSize?:number, offset?:number):Object; describe(model:string|Object|Function):Promise; describeSync(model:string|Object|Function):Object; callStoredProcedure(spName:string, argumentValues:Object|string):Promise; callStoredProcedureSync(spName:string, argumentValues:Object|string):Object; } /** * @private * @class PersistencePermissions * @refers {@link Backendless.Persistence.Permissions} */ class PersistencePermissionsClass { FIND:PersistencePermissionI; REMOVE:PersistencePermissionI; UPDATE:PersistencePermissionI; } /** * @private * @class Geo * @refers {@link Backendless.Geo} */ class GeoClass { restUrl:string; UNITS:Object; EARTH_RADIUS:number; savePointSync(point:Backendless.GeoPoint):Backendless.GeoPoint; savePoint(point:Backendless.GeoPoint):Promise; findSync(query:Backendless.GeoQueryI):Array; find(query:Backendless.GeoQueryI):Promise>; getGeopointCount(fenceName:string, query:Backendless.GeoQueryI):Promise getGeopointCount(query:Backendless.GeoQueryI):Promise getGeopointCountSync(fenceName:string, query:Backendless.GeoQueryI):number getGeopointCountSync(query:Backendless.GeoQueryI):number deletePointSync(point:string|Backendless.GeoPoint):string; deletePoint(point:string|Backendless.GeoPoint):Promise; loadMetadataSync(point:Backendless.GeoPoint|Backendless.GeoCluster):Object; loadMetadata(point:Backendless.GeoPoint|Backendless.GeoCluster):Promise; getClusterPointsSync(cluster:Backendless.GeoCluster):Array; getClusterPoints(cluster:Backendless.GeoCluster):Promise>; getFencePointsSync(fenceName:string, query:Backendless.GeoQueryI):Array; getFencePoints(fenceName:string, query:Backendless.GeoQueryI):Promise>; relativeFindSync(query:Backendless.GeoQueryI):Array; relativeFind(query:Backendless.GeoQueryI):Promise>; addCategorySync(name:string):Backendless.GeoCategoryI; addCategory(name:string):Promise; deleteCategorySync(name:string):boolean; deleteCategory(name:string):Promise; getCategoriesSync():Array; getCategories():Promise>; runOnStayActionSync(fenceName:string, point:Backendless.GeoPoint):Object; runOnStayAction(fenceName:string, point:Backendless.GeoPoint):Promise; runOnExitActionSync(fenceName:string, point:Backendless.GeoPoint):Object; runOnExitAction(fenceName:string, point:Backendless.GeoPoint):Promise; runOnEnterActionSync(fenceName:string, point:Backendless.GeoPoint):Object; runOnEnterAction(fenceName:string, point:Backendless.GeoPoint):Promise; startGeofenceMonitoringWithInAppCallbackSync(fenceName:string, inAppCallback:Backendless.GeofenceMonitoringCallbacksI):void; startGeofenceMonitoringWithInAppCallback(fenceName:string, inAppCallback:Backendless.GeofenceMonitoringCallbacksI):Promise; startGeofenceMonitoringWithRemoteCallbackSync(fenceName:string, point:Backendless.GeoPoint):void; startGeofenceMonitoringWithRemoteCallback(fenceName:string, point:Backendless.GeoPoint):Promise; stopGeofenceMonitoring(fenceName:string):void; } /** * @private * @class Messaging * @refers {@link Backendless.Messaging} */ class MessagingClass { restUrl:string; channelProperties:Object; subscribeSync(channelName:string, subscriptionCallback:(data:Object) => void, subscriptionOptions:Backendless.SubscriptionOptions):Backendless.SubscriptionI; subscribe(channelName:string, subscriptionCallback:(data:Object) => void, subscriptionOptions:Backendless.SubscriptionOptions):Promise; publishSync(channelName:string, message:string|Object, publishOptions?:Backendless.PublishOptions, deliveryOptions?:Backendless.DeliveryOptions):Object; publish(channelName:string, message:string|Object, publishOptions?:Backendless.PublishOptions, deliveryOptions?:Backendless.DeliveryOptions):Promise; sendEmailSync(subject:string, bodyParts:Backendless.Bodyparts, recipients:string[], attachments?:string[]):String; sendEmail(subject:string, bodyParts:Backendless.Bodyparts, recipients:string[], attachments?:string[]):Promise; cancelSync(messageId:string):boolean; cancel(messageId:string):Promise; registerDeviceSync(deviceToken:string, channels?:string[], expiration?:number|Date):Object; registerDevice(deviceToken:string, channels?:string[], expiration?:number|Date):Promise; getRegistrationsSync():Object; getRegistrations():Promise; unregisterDeviceSync():Object; unregisterDevice():Promise; getMessageStatusSync(messageId:string):boolean; getMessageStatus(messageId:string):Promise; } /** * @private * @class Files * @refers {@link Backendless.Files} */ class FilesClass { /** * @namespace Backendless.Files.Permissions **/ Permissions:FilePermissions; restUrl:string; saveFileSync(path:string, fileName:string, fileContent:Blob, overwrite?:boolean):boolean; saveFile(path:string, fileName:string, fileContent:Blob, overwrite?:boolean):Promise; uploadSync(files:File|File[], path:string, overwrite?:boolean):void; upload(files:File|File[], path:string, overwrite?:boolean):Promise; listingSync(path:string, pattern?:string, recursively?:boolean, pageSize?:number, offset?:number):Object; listing(path:string, pattern?:string, recursively?:boolean, pageSize?:number, offset?:number):Promise; renameFileSync(oldPathName:string, newName:string):Object; renameFile(oldPathName:string, newName:string):Promise; moveFileSync(sourcePath:string, targetPath:string):Object; moveFile(sourcePath:string, targetPath:string):Promise; copyFileSync(sourcePath:string, targetPath:string):Object; copyFile(sourcePath:string, targetPath:string):Promise; removeSync(fileURL:string):void; remove(fileURL:string):Promise; existsSync(path:string):Object; exists(path:string):Promise; removeDirectorySync(path:string):void; removeDirectory(path:string):Promise; } /** * @private * @class FilePermissions * @refers {@link Backendless.Files.Permissions} */ class FilePermissions { READ:FilePermissionI; DELETE:FilePermissionI; WRITE:FilePermissionI; } /** * @private * @class Commerce * @refers {@link Backendless.Commerce} */ class CommerceClass { restUrl:string; validatePlayPurchaseSync(packageName:string, productId:string, token:string):Object; validatePlayPurchase(packageName:string, productId:string, token:string):Promise; cancelPlaySubscriptionSync(packageName:string, subscriptionId:string, token:string):Object; cancelPlaySubscription(packageName:string, subscriptionId:string, token:string):Promise; getPlaySubscriptionStatusSync(packageName:string, subscriptionId:string, token:string):Object; getPlaySubscriptionStatus(packageName:string, subscriptionId:string, token:string):Promise; } /** * @private * @class Events * @refers {@link Backendless.Events} */ class EventsClass { restUrl:string; dispatchSync(eventName:string, eventArgs:Object):Object; dispatch(eventName:string, eventArgs:Object):Promise; } /** * @private * @class Cache * @refers {@link Backendless.Cache} */ class CacheClass { putSync(key:string, value:any, timeToLive?:number):Object; put(key:string, value:any, timeToLive?:number):Promise; expireInSync(key:string, time:number|Date):Object; expireIn(key:string, time:number|Date):Promise; expireAtSync(key:string, time:number|Date):Object; expireAt(key:string, time:number|Date):Promise; containsSync(key:string):Object; contains(key:string):Promise; getSync(key:string):Object; get(key:string):Promise; removeSync(key:string):Object; remove(key:string):Promise; } /** * @private * @class Counter */ class Counter { constructor(name:string, restUrl:string); getSync():number; get():Promise; getAndIncrementSync():number; getAndIncrement():Promise; incrementAndGetSync():number; incrementAndGet():Promise; getAndDecrementSync():number; getAndDecrement():Promise; decrementAndGetSync():number; decrementAndGet():Promise; addAndGetSync(value:number):number; addAndGet(value:number):Promise; getAndAddSync(value:number):number; getAndAdd(value:number):Promise compareAndSetSync(expected:number, updated:number):number; compareAndSet(expected:number, updated:number):Promise; resetSync():number; reset():Promise; } /** * @private * @class Counters * @refers {@link Backendless.Counters} */ class CountersClass { of(counterName:string):Counter; getSync(counterName:string):number; get(counterName:string):Promise; getAndIncrementSync(counterName:string):number; getAndIncrement(counterName:string):Promise; incrementAndGetSync(counterName:string):number; incrementAndGet(counterName:string):Promise; getAndDecrementSync(counterName:string):number; getAndDecrement(counterName:string):Promise; decrementAndGetSync(counterName:string):number; decrementAndGet(counterName:string):Promise; addAndGetSync(counterName:string, value:number):number; addAndGet(counterName:string, value:number):Promise; getAndAddSync(counterName:string, value:number):number; getAndAdd(counterName:string, value:number):Promise compareAndSetSync(counterName:string, expected:number, updated:number):number; compareAndSet(counterName:string, expected:number, updated:number):Promise; resetSync(counterName:string):number; reset(counterName:string):Promise; } /** * @private * @class CustomServices * @refers {@link Backendless.CustomServices} */ class CustomServicesClass { invokeSync(serviceName:string, method:string, parameters:Object):any; invoke(serviceName:string, method:string, parameters:Object):Promise; } /** * @private * @class UserService * @refers {@link Backendless.UserService} */ class UserServiceClass { restUrl:string; registerSync(user:Backendless.User):Backendless.User; register(user:Backendless.User):Promise; getUserRolesSync():Backendless.User; getUserRoles():Promise; describeUserClassSync():Backendless.User ; describeUserClass():Promise; restorePasswordSync(email:string):Backendless.User; restorePassword(email:string):Promise; assignRoleSync(identity:string, roleName:string):Backendless.User; assignRole(identity:string, roleName:string):Promise; unassignRoleSync(identity:string, roleName:string):Backendless.User; unassignRole(identity:string, roleName:string):Promise; loginSync(userName:string, password:string, stayLoggedIn?:boolean):Backendless.User; login(userName:string, password:string, stayLoggedIn?:boolean):Promise; loggedInUser():boolean; logoutSync():void; logout():Promise; getCurrentUserSync():Backendless.User; getCurrentUser():Promise; updateSync(user:Backendless.User):Backendless.User; update(user:Backendless.User):Promise; loginWithFacebookSync(fields?:Object, permissions?:Object, stayLoggedIn?:boolean):void; loginWithFacebook(fields?:Object, permissions?:Object, stayLoggedIn?:boolean):Promise; loginWithGooglePlusSync(fields?:Object, permissions?:Object, container?:HTMLElement, stayLoggedIn?:boolean):void; loginWithGooglePlus(fields?:Object, permissions?:Object, container?:HTMLElement, stayLoggedIn?:boolean):Promise; loginWithTwitterSync(fields?:Object, stayLoggedIn?:boolean):void; loginWithTwitter(fields?:Object, stayLoggedIn?:boolean):Promise; loginWithFacebookSdk(fields?:Object, stayLoggedIn?:boolean):Promise; loginWithGooglePlusSdk(fields?:Object, stayLoggedIn?:boolean):Promise; isValidLoginSync():boolean; isValidLogin():Promise; resendEmailConfirmationSync(email:string):void; resendEmailConfirmation(email:string):Promise; } interface LoggingI { restUrl:string; loggers:Object; logInfo:Object[]; messagesCount:number; numOfMessages:number; timeFrequency:number; setLogReportingPolicy(numOfMessages:number, timeFrequencySec:number):void; getLogger(name):Backendless.Logger; } interface PersistencePermissionI { grantUserSync(userId: string, dataItem: Backendless.ExistDataItemI): Backendless.ExistDataItemI; grantUser(userId: string, dataItem: ExistDataItemI): Promise; grantRoleSync(roleName: string, dataItem: Backendless.ExistDataItemI): Backendless.ExistDataItemI; grantRole(roleName: string, dataItem: Backendless.ExistDataItemI): Promise; grantSync(dataItem: Backendless.ExistDataItemI): Backendless.ExistDataItemI; grant(dataItem: Backendless.ExistDataItemI): Promise; denyUserSync(userId: string, dataItem: Backendless.ExistDataItemI): Backendless.ExistDataItemI; denyUser(userId: string, dataItem: Backendless.ExistDataItemI): Promise; denyRoleSync(roleName: string, dataItem: Backendless.ExistDataItemI): Backendless.ExistDataItemI; denyRole(roleName: string, dataItem: Backendless.ExistDataItemI): Promise; denySync(dataItem: Backendless.ExistDataItemI): Backendless.ExistDataItemI; deny(dataItem: Backendless.ExistDataItemI): Promise; } interface FilePermissionI { grantUserSync(userId:string, url:string):boolean; grantUser(userId:string, url:string):Promise; grantRoleSync(roleName:string, url:string):boolean; grantRole(roleName:string, url:string):Promise; denyUserSync(userId:string, url:string):boolean; denyUser(userId:string, url:string):Promise; denyRoleSync(roleName:string, url:string):boolean; denyRole(roleName:string, url:string):Promise; } interface DataQueryValueI { properties?:string[]; condition?:string; options?:Object; url?:string; } interface LocalCacheI { enabled:boolean; exists(key:string):boolean; set(key:string):boolean; set(key:string, val:T):T; remove(key:string):boolean; get(key:string):any; getAll():Object; getCachePolicy(key:string):Object; serialize(value:any):string; deserialize(value:string):any; clear(key:string):void; flushExpired():void; } interface GeoCategoryI { objectId:string; size:number; name:string; } interface GeofenceMonitoringCallbackI { (geoFenceName:string, geoFenceId:string, latitude:number, longitude:number):void; } interface GeofenceMonitoringCallbacksI { onenter?:Backendless.GeofenceMonitoringCallbackI; onstay?:Backendless.GeofenceMonitoringCallbackI; onexit?:Backendless.GeofenceMonitoringCallbackI; } interface DataItemI { ___class:string; objectId?:string; } interface ExistDataItemI extends Backendless.DataItemI { objectId:string; } interface SubscriptionI { channelName:string; options:Object; channelProperties:string; subscriptionId:string; restUrl:string; proxy:Proxy; cancelSubscription():void; } interface GeoQueryI { categories?:string|string[]; includeMetadata?:boolean; metadata?:Object; condition?:string; relativeFindMetadata?:Object; relativeFindPercentThreshold?:number; pageSize?:number; offset?:number; } interface RectangleGeoQueryI extends Backendless.GeoQueryI { searchRectangle:number[]; } interface CircleGeoQueryI extends Backendless.GeoQueryI { latitude:number; longitude:number; radius:number; units:string; } } import Backendless = __Backendless; declare module 'backendless' { import Backendless = __Backendless; export = Backendless; }