diff --git a/amplify-deferred/amplify-deferred-tests.ts b/amplify-deferred/amplify-deferred-tests.ts
index 9482a8ef02..a4c7c656c4 100644
--- a/amplify-deferred/amplify-deferred-tests.ts
+++ b/amplify-deferred/amplify-deferred-tests.ts
@@ -1,265 +1,5 @@
-
-///
-
-// Copied examples directly from AmplifyJs site
-
-// Subscribe and publish with no data
-
-amplify.subscribe("nodataexample", function () {
- alert("nodataexample topic published!");
-});
-
-// Subscribe and publish with data
-
-amplify.publish("nodataexample");
-
-amplify.subscribe("dataexample", function (data) {
- alert(data.foo); // bar
-});
-
-
-amplify.publish("dataexample", { foo: "bar" });
-
-amplify.subscribe("dataexample2", function (param1, param2) {
- alert(param1 + param2); // barbaz
-});
-
-//...
-
-amplify.publish("dataexample2", "bar", "baz");
-
-// Subscribe and publish with context and data
-
-amplify.subscribe("datacontextexample", $("p:first"), function (data) {
- this.text(data.exampleText); // first p element would have "foo bar baz" as text
-});
-
-amplify.publish("datacontextexample", { exampleText: "foo bar baz" });
-
-// Subscribe to a topic with high priority
-
-amplify.subscribe("priorityexample", function (data) {
- alert(data.foo);
-});
-
-amplify.subscribe("priorityexample", function (data) {
- if (data.foo === "oops") {
- return false;
- }
-}, 1);
-
-
-// Store data with amplify storage picking the default storage technology:
-
-amplify.publish("priorityexample", { foo: "bar" });
-amplify.publish("priorityexample", { foo: "oops" });
-
-amplify.store("storeExample1", { foo: "bar" });
-amplify.store("storeExample2", "baz");
-// retrieve the data later via the key
-var myStoredValue = amplify.store("storeExample1"),
- myStoredValue2 = amplify.store("storeExample2"),
- myStoredValues = amplify.store();
-myStoredValue.foo; // bar
-myStoredValue2; // baz
-myStoredValues.storeExample1.foo; // bar
-myStoredValues.storeExample2; // baz
-
-// Store data explicitly with session storage
-
-amplify.store.sessionStorage("explicitExample", { foo2: "baz" });
-// retrieve the data later via the key
-var myStoredValue2 = amplify.store.sessionStorage("explicitExample");
-myStoredValue2.foo2; // baz
-
-
-// REQUEST
-
-// Set up and use a request utilizing Ajax
-
-
-amplify.request.define("ajaxExample1", "ajax", {
- url: "/myApiUrl",
- dataType: "json",
- type: "GET"
-});
-
-// later in code
-amplify.request("ajaxExample1", function (data) {
- data.foo; // bar
-});
-
-// Set up and use a request utilizing Ajax and Caching
-
-amplify.request.define("ajaxExample2", "ajax", {
- url: "/myApiUrl",
- dataType: "json",
- type: "GET",
- cache: "persist"
-});
-
-// later in code
-amplify.request("ajaxExample2", function (data) {
- data.foo; // bar
-});
-
-// a second call will result in pulling from the cache
-amplify.request("ajaxExample2", function (data) {
- data.baz; // qux
-})
-
-// Set up and use a RESTful request utilizing Ajax
-
-amplify.request.define("ajaxRESTFulExample", "ajax", {
- url: "/myRestFulApi/{type}/{id}",
- type: "GET"
-})
-
-// later in code
-amplify.request("ajaxRESTFulExample",
- {
- type: "foo",
- id: "bar"
- },
- function (data) {
- // /myRESTFulApi/foo/bar was the URL used
- data.foo; // bar
- }
- );
-
-// POST data with Ajax
-
-amplify.request.define("ajaxPostExample", "ajax", {
- url: "/myRestFulApi",
- type: "POST"
-})
-
-// later in code
-amplify.request("ajaxPostExample",
- {
- type: "foo",
- id: "bar"
- },
- function (data) {
- data.foo; // bar
- }
- );
-// Using data maps
-
-// When searching Twitter, the key for the search phrase is q.If we want a more descriptive name, such as term, we can use a data map:
-
-amplify.request.define("twitter-search", "ajax", {
- url: "http://search.twitter.com/search.json",
- dataType: "jsonp",
- dataMap: {
- term: "q"
- }
-});
-
-amplify.request("twitter-search", { term: "amplifyjs" });
-
-// Similarly, we can create a request that searches for mentions, by accepting a username:
-
-amplify.request.define("twitter-mentions", "ajax", {
- url: "http://search.twitter.com/search.json",
- dataType: "jsonp",
- dataMap: function (data) {
- return {
- q: "@" + data.user
- };
- }
-});
-
-amplify.request("twitter-mentions", { user: "amplifyjs" });
-
-// Setting up and using decoders
-
-//Example:
-
-var appEnvelopeDecoder: amplifyDecoder = function (data, status, xhr, success, error) {
- if (data.status === "success") {
- success(data.data);
- } else if (data.status === "fail" || data.status === "error") {
- error(data.message, data.status);
- } else {
- error(data.message, "fatal");
- }
-};
-
-//a new decoder can be added to the amplifyDecoders interface
-interface amplifyDecoders {
- appEnvelope: amplifyDecoder;
-}
-
-amplify.request.decoders.appEnvelope = appEnvelopeDecoder;
-
-//but you can also just add it via an index
-amplify.request.decoders['appEnvelopeStr'] = appEnvelopeDecoder;
-
-
-amplify.request.define("decoderExample", "ajax", {
- url: "/myAjaxUrl",
- type: "POST",
- decoder: "appEnvelope"
-});
-
-amplify.request({
- resourceId: "decoderExample",
- success: function (data) {
- data.foo; // bar
- },
- error: function (message, level) {
- alert("always handle errors with alerts.");
- }
-});
-
-// POST with caching and single - use decoder
-
-// Example:
-
-amplify.request.define("decoderSingleExample", "ajax", {
- url: "/myAjaxUrl",
- type: "POST",
- decoder: function (data, status, xhr, success, error) {
- if (data.status === "success") {
- success(data.data);
- } else if (data.status === "fail" || data.status === "error") {
- error(data.message, data.status);
- } else {
- error(data.message, "fatal");
- }
- }
-});
-
-amplify.request({
- resourceId: "decoderSingleExample",
- success: function (data) {
- data.foo; // bar
- },
- error: function (message, level) {
- alert("always handle errors with alerts.");
- }
-});
-// Handling Status
-// Status in Success and Error Callbacks
-
-// amplify.request comes with built in support for status.The status parameter appears in the default success or error callbacks when using an ajax definition.
-
-amplify.request.define("statusExample1", "ajax", {
- //...
-});
-
-amplify.request({
- resourceId: "statusExample1",
- success: function (data, status) {
- },
- error: function (data, status) {
- }
-});
-
amplify.request({
resourceId: "statusExample1"
}).done(function (data, status) {
}).fail(function (data, status) {
}).always(function (data, status) { });
-
diff --git a/amplify-deferred/index.d.ts b/amplify-deferred/index.d.ts
index 3736a6644b..24f88455e9 100644
--- a/amplify-deferred/index.d.ts
+++ b/amplify-deferred/index.d.ts
@@ -5,178 +5,26 @@
///
-interface amplifyRequestSettings {
- resourceId: string;
- data?: any;
- success?: (...args: any[]) => void;
- error?: (...args: any[]) => void;
+import * as amplify from "amplify";
+
+declare module "amplify" {
+ interface Request {
+ /***
+ * Request a resource.
+ * resourceId: Identifier string for the resource.
+ * data: A set of key/value pairs of data to be sent to the resource.
+ * callback: A function to invoke if the resource is retrieved successfully.
+ */
+ (resourceId: string, hash?: any, callback?: Function): JQueryPromise;
+
+ /***
+ * Request a resource.
+ * settings: A set of key/value pairs of settings for the request.
+ * resourceId: Identifier string for the resource.
+ * data (optional): Data associated with the request.
+ * success (optional): Function to invoke on success.
+ * error (optional): Function to invoke on error.
+ */
+ (settings: RequestSettings): JQueryPromise;
+ }
}
-
-interface amplifyDecoder {
- (
- data?: any,
- status?: string,
- xhr?: JQueryXHR,
- success?: (...args: any[]) => void,
- error?: (...args: any[]) => void
- ): void
-}
-
-interface amplifyDecoders {
- [decoderName: string]: amplifyDecoder;
- jsSend: amplifyDecoder;
-}
-
-interface amplifyAjaxSettings extends JQueryAjaxSettings {
- cache?: any;
- dataMap?: {} | ((data: any) => {});
- decoder?: any /* string or amplifyDecoder */;
-}
-
-interface amplifyRequest {
-
- /***
- * Request a resource.
- * resourceId: Identifier string for the resource.
- * data: A set of key/value pairs of data to be sent to the resource.
- * callback: A function to invoke if the resource is retrieved successfully.
- */
- (resourceId: string, hash?: any, callback?: Function): JQueryPromise;
-
- /***
- * Request a resource.
- * settings: A set of key/value pairs of settings for the request.
- * resourceId: Identifier string for the resource.
- * data (optional): Data associated with the request.
- * success (optional): Function to invoke on success.
- * error (optional): Function to invoke on error.
- */
- (settings: amplifyRequestSettings): JQueryPromise;
-
- /***
- * Define a resource.
- * resourceId: Identifier string for the resource.
- * requestType: The type of data retrieval method from the server. See the request types sections for more information.
- * settings: A set of key/value pairs that relate to the server communication technology. The following settings are available:
- * Any settings found in jQuery.ajax().
- * cache: See the cache section for more details.
- * decoder: See the decoder section for more details.
- */
- define(resourceId: string, requestType: string, settings?: amplifyAjaxSettings): void;
-
- /***
- * Define a custom request.
- * resourceId: Identifier string for the resource.
- * resource: Function to handle requests. Receives a hash with the following properties:
- * resourceId: Identifier string for the resource.
- * data: Data provided by the user.
- * success: Callback to invoke on success.
- * error: Callback to invoke on error.
- */
- define(resourceId: string, resource: (settings: amplifyRequestSettings) => void): void;
-
- decoders: amplifyDecoders;
- cache: any;
-}
-
-interface amplifySubscribe {
- /***
- * Subscribe to a message.
- * topic: Name of the message to subscribe to.
- * callback: Function to invoke when the message is published.
- */
- (topic: string, callback: Function): void;
- /***
- * Subscribe to a message.
- * topic: Name of the message to subscribe to.
- * context: What this will be when the callback is invoked.
- * callback: Function to invoke when the message is published.
- * [priority]: Priority relative to other subscriptions for the same message. Lower values have higher priority. Default is 10.
- */
- (topic: string, context: any, callback: Function, priority?: number): void;
- /***
- * Subscribe to a message.
- * topic: Name of the message to subscribe to.
- * callback: Function to invoke when the message is published.
- * [priority]: Priority relative to other subscriptions for the same message. Lower values have higher priority. Default is 10.
- */
- (topic: string, callback: Function, priority?: number): void;
-}
-interface amplifyStorageTypeStore {
- /***
- * Stores a value for a given key using the default storage type.
- *
- * key: Identifier for the value being stored.
- * value: The value to store. The value can be anything that can be serialized as JSON.
- * [options]: A set of key/value pairs that relate to settings for storing the value.
- */
- (key: string, value: any, options?: any): void;
-
- /***
- * Gets a stored value based on the key.
- */
- (key: string): any;
-
- /***
- * Gets a hash of all stored values.
- */
- (): any;
-}
-
-interface amplifyStore extends amplifyStorageTypeStore {
-
- /***
- * IE 8+, Firefox 3.5+, Safari 4+, Chrome, Opera 10.5+, iPhone 2+, Android 2+
- */
- localStorage: amplifyStorageTypeStore;
-
- /***
- * IE 8+, Firefox 2+, Safari 4+, Chrome, Opera 10.5+, iPhone 2+, Android 2+
- */
- sessionStorage: amplifyStorageTypeStore;
-
- /***
- * Firefox 2+
- */
- globalStorage: amplifyStorageTypeStore;
-
- /***
- * IE 5 - 7
- */
- userData: amplifyStorageTypeStore;
-
- /***
- * An in-memory store is provided as a fallback if none of the other storage types are available.
- */
- memory: amplifyStorageTypeStore;
-
-
-}
-
-interface amplifyStatic {
-
- subscribe: amplifySubscribe;
-
- /***
- * Remove a subscription.
- * topic: The topic being unsubscribed from.
- * callback: The callback that was originally subscribed.
- */
- unsubscribe(topic: string, callback: Function): void;
-
- /***
- * Publish a message.
- * topic: The name of the message to publish.
- * Any additional parameters will be passed to the subscriptions.
- * amplify.publish returns a boolean indicating whether any subscriptions returned false. The return value is true if none of the subscriptions returned false, and false otherwise. Note that only one subscription can return false because doing so will prevent additional subscriptions from being invoked.
- */
- publish(topic: string, ...args: any[]): boolean;
-
- store: amplifyStore;
-
- request: amplifyRequest;
-
-}
-
-declare var amplify: amplifyStatic;
-
diff --git a/amplify-deferred/tslint.json b/amplify-deferred/tslint.json
new file mode 100644
index 0000000000..0f47deabb4
--- /dev/null
+++ b/amplify-deferred/tslint.json
@@ -0,0 +1,6 @@
+{
+ "extends": "../tslint.json",
+ "rules": {
+ "forbidden-types": false
+ }
+}
\ No newline at end of file
diff --git a/amplify/amplifyjs-tests.ts b/amplify/amplifyjs-tests.ts
index ec3807435d..f844642b8e 100644
--- a/amplify/amplifyjs-tests.ts
+++ b/amplify/amplifyjs-tests.ts
@@ -1,6 +1,8 @@
///
+import amplify = require("amplify");
+
// Copied examples directly from AmplifyJs site
// Subscribe and publish with no data
@@ -176,7 +178,7 @@ amplify.request("twitter-mentions", { user: "amplifyjs" });
//Example:
-var appEnvelopeDecoder: amplifyDecoder = function (data, status, xhr, success, error) {
+var appEnvelopeDecoder: amplify.Decoder = function (data, status, xhr, success, error) {
if (data.status === "success") {
success(data.data);
} else if (data.status === "fail" || data.status === "error") {
@@ -187,8 +189,10 @@ var appEnvelopeDecoder: amplifyDecoder = function (data, status, xhr, success, e
};
//a new decoder can be added to the amplifyDecoders interface
-interface amplifyDecoders {
- appEnvelope: amplifyDecoder;
+declare module "amplify" {
+ interface Decoders {
+ appEnvelope: amplify.Decoder;
+ }
}
amplify.request.decoders.appEnvelope = appEnvelopeDecoder;
diff --git a/amplify/index.d.ts b/amplify/index.d.ts
index 8955fdc7de..ee14a6891e 100644
--- a/amplify/index.d.ts
+++ b/amplify/index.d.ts
@@ -5,178 +5,173 @@
///
-interface amplifyRequestSettings {
- resourceId: string;
- data?: any;
- success?: (...args: any[]) => void;
- error?: (...args: any[]) => void;
+declare namespace amplify {
+ interface RequestSettings {
+ resourceId: string;
+ data?: any;
+ success?: (...args: any[]) => void;
+ error?: (...args: any[]) => void;
+ }
+
+ type Decoder =
+ (
+ data?: any,
+ status?: string,
+ xhr?: JQueryXHR,
+ success?: (...args: any[]) => void,
+ error?: (...args: any[]) => void
+ ) => void;
+
+ interface Decoders {
+ [decoderName: string]: Decoder;
+ jsSend: Decoder;
+ }
+
+ interface AjaxSettings extends JQueryAjaxSettings {
+ cache?: any;
+ dataMap?: {} | ((data: any) => {});
+ decoder?: any /* string or amplifyDecoder */;
+ }
+
+ interface Request {
+
+ /***
+ * Request a resource.
+ * resourceId: Identifier string for the resource.
+ * data: A set of key/value pairs of data to be sent to the resource.
+ * callback: A function to invoke if the resource is retrieved successfully.
+ */
+ (resourceId: string, hash?: any, callback?: Function): void;
+
+ /***
+ * Request a resource.
+ * settings: A set of key/value pairs of settings for the request.
+ * resourceId: Identifier string for the resource.
+ * data (optional): Data associated with the request.
+ * success (optional): Function to invoke on success.
+ * error (optional): Function to invoke on error.
+ */
+ (settings: RequestSettings): any;
+
+ /***
+ * Define a resource.
+ * resourceId: Identifier string for the resource.
+ * requestType: The type of data retrieval method from the server. See the request types sections for more information.
+ * settings: A set of key/value pairs that relate to the server communication technology. The following settings are available:
+ * Any settings found in jQuery.ajax().
+ * cache: See the cache section for more details.
+ * decoder: See the decoder section for more details.
+ */
+ define(resourceId: string, requestType: string, settings?: AjaxSettings): void;
+
+ /***
+ * Define a custom request.
+ * resourceId: Identifier string for the resource.
+ * resource: Function to handle requests. Receives a hash with the following properties:
+ * resourceId: Identifier string for the resource.
+ * data: Data provided by the user.
+ * success: Callback to invoke on success.
+ * error: Callback to invoke on error.
+ */
+ define(resourceId: string, resource: (settings: RequestSettings) => void): void;
+
+ decoders: Decoders;
+ cache: any;
+ }
+
+ interface Subscribe {
+ /***
+ * Subscribe to a message.
+ * topic: Name of the message to subscribe to.
+ * callback: Function to invoke when the message is published.
+ * [priority]: Priority relative to other subscriptions for the same message. Lower values have higher priority. Default is 10.
+ */
+ (topic: string, callback: Function, priority?: number): void;
+ /***
+ * Subscribe to a message.
+ * topic: Name of the message to subscribe to.
+ * context: What this will be when the callback is invoked.
+ * callback: Function to invoke when the message is published.
+ * [priority]: Priority relative to other subscriptions for the same message. Lower values have higher priority. Default is 10.
+ */
+ (topic: string, context: any, callback: Function, priority?: number): void;
+ }
+ interface StorageTypeStore {
+ /***
+ * Stores a value for a given key using the default storage type.
+ *
+ * key: Identifier for the value being stored.
+ * value: The value to store. The value can be anything that can be serialized as JSON.
+ * [options]: A set of key/value pairs that relate to settings for storing the value.
+ */
+ (key: string, value: any, options?: any): void;
+
+ /***
+ * Gets a stored value based on the key.
+ */
+ (key: string): any;
+
+ /***
+ * Gets a hash of all stored values.
+ */
+ (): any;
+ }
+
+ interface Store extends StorageTypeStore {
+
+ /***
+ * IE 8+, Firefox 3.5+, Safari 4+, Chrome, Opera 10.5+, iPhone 2+, Android 2+
+ */
+ localStorage: StorageTypeStore;
+
+ /***
+ * IE 8+, Firefox 2+, Safari 4+, Chrome, Opera 10.5+, iPhone 2+, Android 2+
+ */
+ sessionStorage: StorageTypeStore;
+
+ /***
+ * Firefox 2+
+ */
+ globalStorage: StorageTypeStore;
+
+ /***
+ * IE 5 - 7
+ */
+ userData: StorageTypeStore;
+
+ /***
+ * An in-memory store is provided as a fallback if none of the other storage types are available.
+ */
+ memory: StorageTypeStore;
+
+
+ }
+
+ interface Static {
+
+ subscribe: Subscribe;
+
+ /***
+ * Remove a subscription.
+ * topic: The topic being unsubscribed from.
+ * callback: The callback that was originally subscribed.
+ */
+ unsubscribe(topic: string, callback: Function): void;
+
+ /***
+ * Publish a message.
+ * topic: The name of the message to publish.
+ * Any additional parameters will be passed to the subscriptions.
+ * amplify.publish returns a boolean indicating whether any subscriptions returned false. The return value is true if none of the subscriptions returned false, and false otherwise. Note that only one subscription can return false because doing so will prevent additional subscriptions from being invoked.
+ */
+ publish(topic: string, ...args: any[]): boolean;
+
+ store: Store;
+
+ request: Request;
+ }
}
-interface amplifyDecoder {
- (
- data?: any,
- status?: string,
- xhr?: JQueryXHR,
- success?: (...args: any[]) => void,
- error?: (...args: any[]) => void
- ): void
-}
-
-interface amplifyDecoders {
- [decoderName: string]: amplifyDecoder;
- jsSend: amplifyDecoder;
-}
-
-interface amplifyAjaxSettings extends JQueryAjaxSettings {
- cache?: any;
- dataMap?: {} | ((data: any) => {});
- decoder?: any /* string or amplifyDecoder */;
-}
-
-interface amplifyRequest {
-
- /***
- * Request a resource.
- * resourceId: Identifier string for the resource.
- * data: A set of key/value pairs of data to be sent to the resource.
- * callback: A function to invoke if the resource is retrieved successfully.
- */
- (resourceId: string, hash?: any, callback?: Function): void;
-
- /***
- * Request a resource.
- * settings: A set of key/value pairs of settings for the request.
- * resourceId: Identifier string for the resource.
- * data (optional): Data associated with the request.
- * success (optional): Function to invoke on success.
- * error (optional): Function to invoke on error.
- */
- (settings: amplifyRequestSettings): any;
-
- /***
- * Define a resource.
- * resourceId: Identifier string for the resource.
- * requestType: The type of data retrieval method from the server. See the request types sections for more information.
- * settings: A set of key/value pairs that relate to the server communication technology. The following settings are available:
- * Any settings found in jQuery.ajax().
- * cache: See the cache section for more details.
- * decoder: See the decoder section for more details.
- */
- define(resourceId: string, requestType: string, settings?: amplifyAjaxSettings): void;
-
- /***
- * Define a custom request.
- * resourceId: Identifier string for the resource.
- * resource: Function to handle requests. Receives a hash with the following properties:
- * resourceId: Identifier string for the resource.
- * data: Data provided by the user.
- * success: Callback to invoke on success.
- * error: Callback to invoke on error.
- */
- define(resourceId: string, resource: (settings: amplifyRequestSettings) => void): void;
-
- decoders: amplifyDecoders;
- cache: any;
-}
-
-interface amplifySubscribe {
- /***
- * Subscribe to a message.
- * topic: Name of the message to subscribe to.
- * callback: Function to invoke when the message is published.
- */
- (topic: string, callback: Function): void;
- /***
- * Subscribe to a message.
- * topic: Name of the message to subscribe to.
- * context: What this will be when the callback is invoked.
- * callback: Function to invoke when the message is published.
- * [priority]: Priority relative to other subscriptions for the same message. Lower values have higher priority. Default is 10.
- */
- (topic: string, context: any, callback: Function, priority?: number): void;
- /***
- * Subscribe to a message.
- * topic: Name of the message to subscribe to.
- * callback: Function to invoke when the message is published.
- * [priority]: Priority relative to other subscriptions for the same message. Lower values have higher priority. Default is 10.
- */
- (topic: string, callback: Function, priority?: number): void;
-}
-interface amplifyStorageTypeStore {
- /***
- * Stores a value for a given key using the default storage type.
- *
- * key: Identifier for the value being stored.
- * value: The value to store. The value can be anything that can be serialized as JSON.
- * [options]: A set of key/value pairs that relate to settings for storing the value.
- */
- (key: string, value: any, options?: any): void;
-
- /***
- * Gets a stored value based on the key.
- */
- (key: string): any;
-
- /***
- * Gets a hash of all stored values.
- */
- (): any;
-}
-
-interface amplifyStore extends amplifyStorageTypeStore{
-
- /***
- * IE 8+, Firefox 3.5+, Safari 4+, Chrome, Opera 10.5+, iPhone 2+, Android 2+
- */
- localStorage: amplifyStorageTypeStore;
-
- /***
- * IE 8+, Firefox 2+, Safari 4+, Chrome, Opera 10.5+, iPhone 2+, Android 2+
- */
- sessionStorage: amplifyStorageTypeStore;
-
- /***
- * Firefox 2+
- */
- globalStorage: amplifyStorageTypeStore;
-
- /***
- * IE 5 - 7
- */
- userData: amplifyStorageTypeStore;
-
- /***
- * An in-memory store is provided as a fallback if none of the other storage types are available.
- */
- memory: amplifyStorageTypeStore;
-
-
-}
-
-interface amplifyStatic {
-
- subscribe: amplifySubscribe;
-
- /***
- * Remove a subscription.
- * topic: The topic being unsubscribed from.
- * callback: The callback that was originally subscribed.
- */
- unsubscribe(topic: string, callback: Function): void;
-
- /***
- * Publish a message.
- * topic: The name of the message to publish.
- * Any additional parameters will be passed to the subscriptions.
- * amplify.publish returns a boolean indicating whether any subscriptions returned false. The return value is true if none of the subscriptions returned false, and false otherwise. Note that only one subscription can return false because doing so will prevent additional subscriptions from being invoked.
- */
- publish(topic: string, ...args: any[]): boolean;
-
- store: amplifyStore;
-
- request: amplifyRequest;
-
-}
-
-declare var amplify: amplifyStatic;
-declare module "amplify" { export =amplify; }
+declare var amplify: amplify.Static;
+export = amplify;
+export as namespace amplify;
diff --git a/amplify/tslint.json b/amplify/tslint.json
new file mode 100644
index 0000000000..2d6cd90f81
--- /dev/null
+++ b/amplify/tslint.json
@@ -0,0 +1,7 @@
+{
+ "extends": "../tslint.json",
+ "rules": {
+ "forbidden-types": false,
+ "unified-signatures": false
+ }
+}
\ No newline at end of file