diff --git a/ng-facebook/ng-facebook-tests.ts b/ng-facebook/ng-facebook-tests.ts
new file mode 100644
index 000000000..9aace5d14
--- /dev/null
+++ b/ng-facebook/ng-facebook-tests.ts
@@ -0,0 +1,51 @@
+///
+
+{
+ let $facebookProvider: angular.ngFacebook.IFacebookProvider;
+
+ $facebookProvider
+ .setAppId("764262530321266")
+ .setPermissions(["email", "user_friends"])
+ .setPermissions("user_friends")
+ .setCustomInit({
+ xfbml: true
+ })
+ .setVersion("v2.2");
+
+ let appId: string = $facebookProvider.getAppId();
+ let version: string = $facebookProvider.getVersion();
+ let permissions: string = $facebookProvider.getPermissions();
+ let customInit: any = $facebookProvider.getCustomInit();
+}
+
+{
+ let $facebook: angular.ngFacebook.IFacebookService;
+
+ let customInit: FBInitParams = $facebook.config("customInit");
+ let version: string = $facebook.config("version");
+ let appId: string = $facebook.config("appId");
+
+ $facebook.init();
+
+ $facebook.setCache("key1", 123);
+ $facebook.setCache<{ prop1: number }>("key2", { prop1: 456 });
+ let cache: number = $facebook.getCache("key");
+ $facebook.clearCache();
+
+ let isConnected: boolean = $facebook.isConnected();
+
+ let authResponse: {} = $facebook.getAuthResponse();
+
+ $facebook.getLoginStatus().then(status => { });
+ $facebook.getLoginStatus(true).then(status => { });
+
+ $facebook.logout().then(() => { });
+ $facebook.login().then(() => { });
+
+ $facebook.api("/me").then(user => { });
+ $facebook.api("/me", "get");
+ $facebook.api("/me", { param: 1 });
+ $facebook.api("/me", "get", { param: 1 });
+
+ $facebook.cachedApi("'/me/friends").then(friends => { });
+}
diff --git a/ng-facebook/ng-facebook.d.ts b/ng-facebook/ng-facebook.d.ts
new file mode 100644
index 000000000..dc2adc883
--- /dev/null
+++ b/ng-facebook/ng-facebook.d.ts
@@ -0,0 +1,46 @@
+// Type definitions for ng-facebook
+// Project: https://github.com/GoDisco/ngFacebook
+// Definitions by: Crevil
+// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
+
+///
+///
+
+declare namespace angular.ngFacebook {
+ interface IFacebookProvider {
+ setAppId(appId: string): IFacebookProvider;
+ getAppId(): string;
+
+ setVersion(version: string): IFacebookProvider;
+ getVersion(): string;
+
+ setPermissions(permissions: string|Array): IFacebookProvider;
+ getPermissions(): string;
+
+ setCustomInit(customInit: FBInitParams): IFacebookProvider;
+ getCustomInit(): FBInitParams;
+ }
+
+ interface IFacebookService {
+ config(property: string): T;
+ init(): void;
+
+ setCache(attr: string, val: T): void;
+ getCache(attr: string): T;
+ clearCache(): void;
+
+ isConnected(): boolean;
+ getAuthResponse(): {};
+ getLoginStatus(force?: boolean): angular.IPromise<{}>;
+ login(permissions?: string, rerequest?: boolean): angular.IPromise<{}>;
+ logout(): angular.IPromise;
+
+ ui(params: FBUIParams): angular.IPromise;
+ api(path: string): angular.IPromise<{}>;
+ api(path: string, method: string): angular.IPromise<{}>;
+ api(path: string, params: Object): angular.IPromise<{}>;
+ api(path: string, method: string, params: Object): angular.IPromise<{}>;
+
+ cachedApi(path: string): angular.IPromise;
+ }
+}