diff --git a/azure-mobile-apps/azure-mobile-apps-tests.ts b/azure-mobile-apps/azure-mobile-apps-tests.ts index 5e98e8074..093932c2f 100644 --- a/azure-mobile-apps/azure-mobile-apps-tests.ts +++ b/azure-mobile-apps/azure-mobile-apps-tests.ts @@ -1,47 +1,87 @@ -/// - -var app = require('express')(), - mobileApp = require('azure-mobile-apps')({ - debug: true, - data: { - provider: 'mssql', - server: '', - user: '', - database: '', - password: '' - } - }) - -mobileApp.tables.add('todoitem', { - authorize: true -}); - -mobileApp.api.add('customApi', { - authorize: true, - post: function (req: any, res: any, next: any) { - next(); - }, - patch: [function (req: any, res: any, next: any) {}, function (req: any, res: any, next: any) {}] -}) - -mobileApp.use(function (req: any, res: any, next: any) { - next(); -}); - -var table = mobileApp.table() -table.read(function (context: AzureMobileApps.Context) { - return context.execute().then(function (result: any) { - return result; - }); -}); - -table.use(function (req: any, res: any, next: any) { - next(new Error()); -}); - -var logger = require('azure-mobile-apps/src/logger'); -logger.silly('test', 'message'); -logger.error('Something happened', new Error()); - -var queries = require('azure-mobile-apps/src/query'); -queries.create('table').where({ x: 10 }).select('col1,col2'); \ No newline at end of file +/// + +import express = require('express'); +import mobileApps = require('azure-mobile-apps'); +import logger = require('azure-mobile-apps/src/logger'); +import queries = require('azure-mobile-apps/src/query'); + +var app = express(), + mobileApp = mobileApps(); + +// various configuration permutations +mobileApps({ + debug: true, + data: { + provider: 'mssql', + server: '', + user: '', + database: '', + password: '' + } +}); + +mobileApps({ + data: { + provider: 'memory' + } +}) + +// it would be nice to integrate with winston +mobileApps({ logging: { level: 'silly', transports: [{}] } }) + +// various custom middleware syntaxes +mobileApp.use(function (req: any, res: any, next: any) { next(); }); +mobileApp.use([function () {}, function () {}]); +mobileApp.use(function () {}, function () {}); +mobileApp.use(function () {}).use(function () {}); + +// basic syntax for tables and api +mobileApp.tables.add('todoitem'); +mobileApp.tables.add('todoitem', { authorize: true }); +mobileApp.tables.add('todoitem', mobileApps.table()); +mobileApp.tables.import('tables'); +mobileApp.api.add('api', { authorize: true, get: function () {}, delete: function () {} }); +mobileApp.api.import('api'); + +// Express.Table, instantiated from the mobile app +var table = mobileApp.table() +table.use(function (req: Express.Request, res: Express.Response, next: any) { + next(new Error()); +}); +table.use([function () {}, function () {}]); +table.read(function (context: Azure.MobileApps.Context) { + context.query.where({ p1: 'test' }); + return context.execute() + .then(function (result: any) { + return result; + }) + .catch(function (error: any) { }) + .then(function () {}); +}); +table.insert(function (context: Azure.MobileApps.Context) { + context.query.id = 'anotherId'; + context.query.single = true; + context.item.userId = context.user.id; + context.push.send('tag', {}, function (error, result) {}); + context.push.gcm.send('tag', {}, function (error, result) {}); + context.push.apns.send('tag', { payload: { } }, function (error, result) {}); + context.push.wns.sendToastText01('tag', '', { headers: { } }, function (error, result) {}); +}); +table.read.use(function () {}); +table.read.use([function () {}, function () {}]); +table.read.use(function () {}, function () {}); +table.use(function () {}).use(function () {}).read(function () {}).use(function () {}) + +// Express.Table, instantiated from the static require('azure-mobile-apps').table() +// This is going to be interesting if we ever support more than one provider +var table2 = mobileApps.table(); +table2.read(function (context: Azure.MobileApps.Context) {}) + +// Logger +logger.silly('test', 'message'); +logger.error('Something happened', new Error()); +mobileApps.logger.debug('a debug message') + +// Query +queries.create('table').where({ x: 10 }).select('col1,col2'); +mobileApps.query.create('table'); \ No newline at end of file diff --git a/azure-mobile-apps/azure-mobile-apps.d.ts b/azure-mobile-apps/azure-mobile-apps.d.ts index b6b7d49e7..5441515fe 100644 --- a/azure-mobile-apps/azure-mobile-apps.d.ts +++ b/azure-mobile-apps/azure-mobile-apps.d.ts @@ -4,112 +4,95 @@ // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped /// +/// declare module "azure-mobile-apps" { - function returnedFunction(configuration?: AzureMobileApps.Configuration): AzureMobileApps.ExpressMobileApp; - module returnedFunction { } - export = returnedFunction; -} + interface AzureMobileApps { + (configuration?: Azure.MobileApps.Configuration): Azure.MobileApps.Platforms.Express.MobileApp; + table(): Azure.MobileApps.Platforms.Express.Table; + logger: Azure.MobileApps.Logger; + query: Azure.MobileApps.Query; + } -declare module "azure-mobile-apps/src/express" { - function returnedFunction(configuration: AzureMobileApps.Configuration): AzureMobileApps.ExpressMobileApp; - module returnedFunction { } - export = returnedFunction; + var out: AzureMobileApps; + export = out; } - -declare module "azure-mobile-apps/src/express/api" { - function returnedFunction(configuration: AzureMobileApps.Configuration): AzureMobileApps.ExpressApi; - module returnedFunction { } - export = returnedFunction; -} - -declare module "azure-mobile-apps/src/express/table" { - function returnedFunction(definition: AzureMobileApps.TableDefinition): AzureMobileApps.ExpressTable; - module returnedFunction { } - export = returnedFunction; -} - -declare module "azure-mobile-apps/src/express/tables" { - function returnedFunction(configuration: AzureMobileApps.Configuration): AzureMobileApps.ExpressTables; - module returnedFunction { } - export = returnedFunction; -} - -declare module "azure-mobile-apps/src/auth" { - function returnedFunction(configuration: AzureMobileApps.Configuration): AzureMobileApps.Auth; - module returnedFunction { } - export = returnedFunction; -} - -declare module "azure-mobile-apps/src/data" { - function returnedFunction(configuration: AzureMobileApps.Configuration): (table: AzureMobileApps.ExpressTable) => AzureMobileApps.Data; - module returnedFunction { } - export = returnedFunction; -} - declare module "azure-mobile-apps/src/logger" { - var logger: AzureMobileApps.Logger; + var logger: Azure.MobileApps.Logger; export = logger; } declare module "azure-mobile-apps/src/query" { - var query: AzureMobileApps.Query; + var query: Azure.MobileApps.Query; export = query; } -declare module AzureMobileApps { - // express - interface ExpressMobileApp { - configuration: Configuration; - tables: ExpressTables; - table(): ExpressTable; - api: ExpressApi; - use(middleware: Middleware | Middleware[]): void; +declare module Azure.MobileApps { + // the additional Platforms namespace is required to avoid collisions with the main Express namespace + export module Platforms { + export module Express { + interface MobileApp { + configuration: Configuration; + tables: Tables; + table(): Table; + api: Api; + use(...middleware: Middleware[]): MobileApp; + use(middleware: Middleware[]): MobileApp; + } + + interface Api { + add(name: string, definition: ApiDefinition): void; + import(fileOrFolder: string): void; + } + + interface Table { + authorize?: boolean; + autoIncrement?: boolean; + dynamicSchema?: boolean; + name: string; + columns?: any; + schema: string; + + use(...middleware: Middleware[]): Table; + use(middleware: Middleware[]): Table; + read: TableOperation; + update: TableOperation; + insert: TableOperation; + delete: TableOperation; + undelete: TableOperation; + } + + interface TableOperation { + (operationHandler: (context: Context) => void): Table; + use(...middleware: Middleware[]): Table; + use(middleware: Middleware[]): Table; + } + + interface Tables { + configuration: Configuration; + add(name: string, definition?: Table | TableDefinition): void; + import(fileOrFolder: string): void; + initialize(): Thenable; + } + } } - interface ExpressApi { - add(name: string, definition: ApiDefinition): void; - import(fileOrFolder: string): void; - } + export module Data { + interface Table { + read(query: QueryJs): Thenable; + update(item: any, query: QueryJs): Thenable; + insert(item: any): Thenable; + delete(query: QueryJs, version: string): Thenable; + undelete(query: QueryJs, version: string): Thenable; + truncate(): Thenable; + initialize(): Thenable; + schema(): Thenable; + } - interface ExpressTable { - authorize?: boolean; - autoIncrement?: boolean; - dynamicSchema?: boolean; - name: string; - columns?: any; - schema: string; - - use(middleware: Middleware | Middleware[]): void; - read(operationHandler: (context: Context) => void): void; - update(operationHandler: (context: Context) => void): void; - insert(operationHandler: (context: Context) => void): void; - delete(operationHandler: (context: Context) => void): void; - undelete(operationHandler: (context: Context) => void): void; - } - - interface ExpressTables { - configuration: Configuration; - add(name: string, definition: ExpressTable | TableDefinition): void; - import(fileOrFolder: string): void; - initialize(): Thenable; - } - - // data - interface Data { - read(query: QueryJs): Thenable; - update(item: any, query: QueryJs): Thenable; - insert(item: any): Thenable; - delete(query: QueryJs, version: string): Thenable; - undelete(query: QueryJs, version: string): Thenable; - truncate(): Thenable; - initialize(): Thenable; - schema(): Thenable; - } - - interface SchemaResult { - name: string; - type: string; + interface Column { + name: string; + type: string; + } } // auth @@ -144,53 +127,53 @@ declare module AzureMobileApps { swagger?: boolean; maxTop?: number; pageSize?: number; - logging?: LoggingConfiguration; - data?: MssqlDataConfiguration; - auth?: AuthConfiguration; - cors?: CorsConfiguration; - notifications?: NotificationsConfiguration; + logging?: Configuration.Logging; + data?: Configuration.Data; + auth?: Configuration.Auth; + cors?: Configuration.Cors; + notifications?: Configuration.Notifications; } + + export module Configuration { + // it would be nice to have the config for various providers in separate interfaces, + // but this is the simplest solution to support variations of the current setup + interface Data { + provider: string; + user?: string; + password?: string; + server?: string; + port?: number; + database?: string; + connectionTimeout?: string; + options?: { encrypt: boolean }; + schema?: string; + dynamicSchema?: boolean; + } - interface DataConfiguration { - provider?: string; - } + interface Auth { + secret: string; + validateTokens?: boolean; + } - interface MssqlDataConfiguration { - provider: string; - user: string; - password: string; - server: string; - port?: number; - database: string; - connectionTimeout?: string; - options?: { encrypt: boolean }; - schema?: string; - dynamicSchema?: boolean; - } + interface Logging { + level?: string; + transports?: LoggingTransport[]; + } - interface AuthConfiguration { - secret: string; - validateTokens?: boolean; - } + interface LoggingTransport { } - interface LoggingConfiguration { - level?: string; - transports?: LoggingTransport[]; - } + interface Cors { + maxAge?: number; + origins: string[]; + } - interface LoggingTransport { } - - interface CorsConfiguration { - maxAge?: number; - origins: string[]; - } - - interface NotificationsConfiguration { - hubName: string; - connectionString?: string; - endpoint?: string; - sharedAccessKeyName?: string; - sharedAccessKeyValue?: string; + interface Notifications { + hubName: string; + connectionString?: string; + endpoint?: string; + sharedAccessKeyName?: string; + sharedAccessKeyValue?: string; + } } // query @@ -208,6 +191,9 @@ declare module AzureMobileApps { skip(count: number): QueryJs; take(count: number): QueryJs; where(filter: any): QueryJs; + // these are properties added by the SDK + id?: string | number; + single?: boolean; } interface OData { @@ -221,22 +207,18 @@ declare module AzureMobileApps { includeTotalCount?: boolean; } - // notifications - interface NotificationHubService { - - } - // general + var nh: Azure.ServiceBus.NotificationHubService; interface Context { query: QueryJs; id: string | number; item: any; req: Express.Request; res: Express.Response; - data: (table: TableDefinition) => Data; - tables: (tableName: string) => Data; + data: (table: TableDefinition) => Data.Table; + tables: (tableName: string) => Data.Table; user: User; - push: NotificationHubService; + push: typeof nh; logger: Logger; execute(): Thenable; } @@ -262,6 +244,8 @@ declare module AzureMobileApps { interface Thenable { then(onFulfilled?: (value: R) => U | Thenable, onRejected?: (error: any) => U | Thenable): Thenable; then(onFulfilled?: (value: R) => U | Thenable, onRejected?: (error: any) => void): Thenable; + catch(onRejected?: (error: any) => U | Thenable): Thenable; + catch(onRejected?: (error: any) => void): Thenable; } interface Logger { @@ -281,4 +265,15 @@ declare module AzureMobileApps { interface NextMiddleware { (error?: any): void; } +} + +// additions to the Express modules +declare module Express { + interface Request { + azureMobile: Azure.MobileApps.Context + } + + interface Response { + results?: any; + } } \ No newline at end of file diff --git a/azure-sb/azure-sb-tests.ts b/azure-sb/azure-sb-tests.ts new file mode 100644 index 000000000..508685181 --- /dev/null +++ b/azure-sb/azure-sb-tests.ts @@ -0,0 +1,16 @@ +/// + +var nh = new Azure.ServiceBus.NotificationHubService(); +nh.send('tag', '', function (error, result) {}); +nh.send('tag', '', { headers: {} }, function (error, result) {}); + +nh.apns.send('tag', { payload: { } }, function (error, result) {}); +nh.apns.send(['tag'], { payload: { } }, function (error, result) {}); +nh.gcm.send('tag', { }, function (error, result) {}); +nh.gcm.send(['tag'], { }, function (error, result) {}); +nh.wns.send('tag', '', 'wns/toast', function (error, result) {}); +nh.wns.send(['tag'], '', 'wns/toast', function (error, result) {}); +nh.wns.send('tag', '', 'wns/toast', { headers: {} }, function (error, result) {}); +nh.wns.sendToastText01('tag', '', function (error, result) {}); +nh.wns.sendToastText01(['tag'], '', function (error, result) {}); +nh.wns.sendToastText01('tag', '', { headers: {} }, function (error, result) {}); \ No newline at end of file diff --git a/azure-sb/azure-sb.d.ts b/azure-sb/azure-sb.d.ts new file mode 100644 index 000000000..3e9fdc974 --- /dev/null +++ b/azure-sb/azure-sb.d.ts @@ -0,0 +1,168 @@ +declare module Azure.ServiceBus { + interface Callback { + (error: any, response: any): void; + } + + interface NotificationHubRegistration { + RegistrationId: string; + ChannelUri?: string; + DeviceToken?: string; + gcmRegistrationId?: string; + Tags?: string; + BodyTemplate?: any; + WnsHeaders?: any; + MpnsHeaders?: any; + Expiry?: Date; + } + + export class NotificationHubService { + new(hubName: string, endpointOrConnectionString: string, sharedAccessKeyName?: string, sharedAccessKeyValue?: string): NotificationHubService; + hubName: string; + wns: Wns.Service; + apns: Apns.Service; + gcm: Gcm.Service; + mpns: Mpns.Service; + send(tags: string, payload: Object | string, optionsOrCallback?: { headers: Object } | Callback, callback?: Callback): void; + + createOrUpdateInstallation(installation: string, options: any, callback?: Callback): void; + patchInstallation(installationId: string, partialUpdateOperations: any[], options: any, callback?: Callback): void; + deleteInstallation(installationId: string, options: any, callback?: Callback): void; + getInstallation(installationId: string, options: any, callback?: Callback): void; + + /* + // old school? + createRegistrationId(callback?: Callback): void; + getRegistration(registrationId: string, options: any, callback?: Callback): void; + deleteRegistration(registrationId: string, options?: { etag: any }, callback?: Callback): void; + updateRegistration(registration: NotificationHubRegistration, options?: { etag: any }, callback?: Callback): void; + createOrUpdateRegistration(registration: NotificationHubRegistration, options?: { etag: any }, callback?: Callback): void; + listRegistrations(options?: { top: number, skip: number }, callback?: Callback): void; + listRegistrationsByTag(tag: string, options?: { top: number, skip: number }, callback?: Callback): void; + */ + } + + export module Apns { + interface Payload { + expiry?: Date; + aps?: Object; + badge?: number; + alert?: string; + sound?: string; + payload: Object; + } + + interface Service { + new(service: NotificationHubService): Service; + send(tags: string | string[], payload: Apns.Payload, callback?: Callback): void; + createNativeRegistration(token: string, tags: string | string[], optionsOrCallback?: Object | Callback, callback?: Callback): void; + createOrUpdateNativeRegistration(registrationId: string, token: string, tags: string | string[], optionsOrCallback?: Object | Callback, callback?: Callback): void; + createTemplateRegistration(token: string, tags: string | string[], template: Apns.Payload, optionsOrCallback?: Object | Callback, callback?: Callback): void; + createOrUpdateTemplateRegistration(registrationId: string, token: string, tags: string | string[], template: Apns.Payload, optionsOrCallback?: Object | Callback, callback?: Callback): void; + updateTemplateRegistration(registrationId: string, token: string, tags: string | string[], template: Apns.Payload, optionsOrCallback?: Object | Callback, callback?: Callback): void; + listRegistrationsByToken(token: string, optionsOrCallback?: { top: number, skip: number } | Callback, callback?: Callback): void; + } + } + export module Gcm { + interface Service { + new(service: NotificationHubService): Service; + send(tags: string | string[], payload: any, callback?: Callback): void; + createNativeRegistration(gcmRegistrationId: string, tags: string | string[], optionsOrCallback?: Object | Callback, callback?: Callback): void; + createOrUpdateNativeRegistration(registrationId: string, gcmRegistrationId: string, tags: string | string[], optionsOrCallback?: Object | Callback, callback?: Callback): void; + createTemplateRegistration(gcmRegistrationId: string, tags: string | string[], template: any, optionsOrCallback?: Object | Callback, callback?: Callback): void; + createOrUpdateTemplateRegistration(registrationId: string, gcmRegistrationId: string, tags: string | string[], template: any, optionsOrCallback?: Object | Callback, callback?: Callback): void; + updateTemplateRegistration(registrationId: string, gcmRegistrationId: string, tags: string | string[], template: any, optionsOrCallback?: Object | Callback, callback?: Callback): void; + listRegistrationsByGcmRegistrationId(gcmRegistrationId: string, optionsOrCallback?: { top: number, skip: number } | Callback, callback?: Callback): void; + } + } + + export module Mpns { interface Service { } } + + export module Wns { + interface Payload { + text1?: string; + text2?: string; + text3?: string; + text4?: string; + image1src?: string; + image1alt?: string; + image2src?: string; + image2alt?: string; + image3src?: string; + image3alt?: string; + image4src?: string; + image4alt?: string; + lang?: string; + type?: string; + } + + interface Options { + headers: Object; + } + + interface Service { + new(service: NotificationHubService): Service; + sendTileSquareBlock(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileSquareText01(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileSquareText02(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileSquareText03(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileSquareText04(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWideText01(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWideText02(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWideText03(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWideText04(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWideText05(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWideText06(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWideText07(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWideText08(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWideText09(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWideText10(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWideText11(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileSquareImage(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileSquarePeekImageAndText01(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileSquarePeekImageAndText02(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileSquarePeekImageAndText03(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileSquarePeekImageAndText04(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWideImage(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWideImageCollection(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWideImageAndText01(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWideImageAndText02(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWideBlockAndText01(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWideBlockAndText02(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWideSmallImageAndText01(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWideSmallImageAndText02(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWideSmallImageAndText03(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWideSmallImageAndText04(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWideSmallImageAndText05(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWidePeekImageCollection01(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWidePeekImageCollection02(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWidePeekImageCollection03(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWidePeekImageCollection04(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWidePeekImageCollection05(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWidePeekImageCollection06(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWidePeekImageAndText01(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWidePeekImageAndText02(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWidePeekImage01(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWidePeekImage02(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWidePeekImage03(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWidePeekImage04(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWidePeekImage05(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendTileWidePeekImage06(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendToastText01(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendToastText02(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendToastText03(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendToastText04(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendToastImageAndText01(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendToastImageAndText02(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendToastImageAndText03(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendToastImageAndText04(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + // badges = ['none','activity','alert','available','away','busy','newMessage','paused','playing','unavailable','error', 'attention'] + sendBadge(tags: string | string[], value: string | number, optionsOrCallback?: Options | Callback, callback?: Callback): void; + sendRaw(tags: string | string[], payload: any, optionsOrCallback?: Options | Callback, callback?: Callback): void; + // types = ['wns/toast', 'wns/badge', 'wns/tile', 'wns/raw'] + send(tags: string | string[], payload: string, type: string, optionsOrCallback?: Options | Callback, callback?: Callback): void; + createNativeRegistration(channel: string, tags: string | string[], optionsOrCallback?: Options | Callback, callback?: Callback): void; + createOrUpdateNativeRegistration(registrationId: string, channel: string, tags: string | string[], optionsOrCallback?: Options | Callback, callback?: Callback): void; + listRegistrationsByChannel(channel: string, optionsOrCallback?: { top: number, skip: number } | Callback, callback?: Callback): void; + } + } +} \ No newline at end of file