diff --git a/angular-agility/angular-agility-tests.ts b/angular-agility/angular-agility-tests.ts
new file mode 100644
index 0000000000..1e8eea478b
--- /dev/null
+++ b/angular-agility/angular-agility-tests.ts
@@ -0,0 +1,78 @@
+///
+///
+
+var validIconStrategy:aa.IValidIconStrategy = {};
+validIconStrategy.validIcon = "";
+validIconStrategy.invalidIcon = "";
+validIconStrategy.getContainer({});
+
+var provider:aa.IFormExtensionsProvider = {};
+provider.defaultLabelStrategy = "";
+provider.defaultFieldGroupStrategy = "";
+provider.defaultValMsgPlacementStrategy = "";
+provider.validIconStrategy = validIconStrategy;
+provider.defaultSpinnerClickStrategy = "";
+provider.defaultNotifyTarget = "";
+provider.defaultOnNavigateAwayStrategy = "";
+provider.validationMessages['testName'] = 'testMessages';
+provider.valMsgForTemplate = "";
+provider.confirmResetStrategy = ():boolean=>{ return false; };
+provider.globalSettings['testSetting'] = 'test';
+provider.labelStrategies['testLabelStratgey'] = (element:ng.IAugmentedJQueryStatic, labelText:string, isRequired:boolean):void=>{};
+provider.fieldGroupStrategies['testFieldGroupStratgey'] = (element:ng.IAugmentedJQueryStatic):void=>{};
+provider.valMsgPlacementStrategies['testValMsgPlacementStrategy'] = (formFieldElement:ng.IAugmentedJQueryStatic, formName:string, formFieldName:string):void=>{};
+provider.spinnerClickStrategies['testSpinnerClickStratgey'] = (element:ng.IAugmentedJQueryStatic):void=>{};
+provider.onNavigateAwayStrategies['testOnNavigateAwayStrategy'] = (rootFormScope:ng.IScope, rootForm:ng.IAugmentedJQueryStatic, $injector:ng.auto.IInjectorService)=>{};
+
+var defaults:aa.INotifyDefaults = {};
+defaults.success = (message:string, options:any, notifier:any):any=>{};
+defaults.info = (message:string, options:any, notifier:any):any=>{};
+defaults.warning = (message:string, options:any, notifier:any):any=>{};
+defaults.danger = (message:string, options:any, notifier:any):any=>{};
+defaults.error = (message:string, options:any, notifier:any):any=>{};
+
+var configWithoutTemplate:aa.INotifyConfig = {
+ name: "",
+ options: {},
+ namedDefaults: {}
+}
+
+var configWithTemplate:aa.INotifyConfig = {
+ name: "",
+ template: "",
+ templateName: "",
+ options: {},
+ namedDefaults: {}
+}
+
+var notifyOptionsWithoutCssClasses:aa.INotifyOptions = {
+ messageType: "",
+ allowHtml: true,
+ message: ""
+}
+
+var notifyOptionsWithCssClasses:aa.INotifyOptions = {
+ cssClasses: "",
+ messageType: "",
+ allowHtml: true,
+ message: ""
+}
+
+var notifyConfigProvider:aa.INotifyConfigProvider = {};
+notifyConfigProvider.notifyConfigs = {};
+notifyConfigProvider.defaultTargetContainerName = "";
+notifyConfigProvider.defaultNotifyConfig = "";
+notifyConfigProvider.addOrUpdateNotifyConfig("", configWithTemplate);
+notifyConfigProvider.optionsTransformer(notifyOptionsWithCssClasses, {});
+
+var fullExternalConfig:aa.IExternalFormValidationConfig = {
+ validations: "",
+ ignore: "",
+ globals: "",
+ resolve: "",
+ resolveFn: (modelValue:string):string=>{ return "" }
+}
+
+var minimalExternalConfig:aa.IExternalFormValidationConfig = {
+ validations: ""
+}
diff --git a/angular-agility/angular-agility.d.ts b/angular-agility/angular-agility.d.ts
new file mode 100644
index 0000000000..c11aff0b07
--- /dev/null
+++ b/angular-agility/angular-agility.d.ts
@@ -0,0 +1,106 @@
+// Type definitions for AngularAgility
+// Project: https://github.com/AngularAgility/AngularAgility
+// Definitions by: Roland Zwaga
+// Definitions: https://github.com/borisyankov/DefinitelyTyped
+
+///
+
+declare module aa {
+
+ export interface ILabelStrategies {
+ [strategyName: string]: (element:ng.IAugmentedJQueryStatic, labelText:string, isRequired:boolean)=>void;
+ }
+
+ export interface IFieldGroupStrategies {
+ [strategyName: string]: (element:ng.IAugmentedJQueryStatic)=>void;
+ }
+
+ export interface IValMsgPlacementStrategies {
+ [strategyName: string]: (formFieldElement:ng.IAugmentedJQueryStatic, formName:string, formFieldName:string)=>void;
+ }
+
+ export interface IValidIconStrategy {
+ validIcon:string;
+ invalidIcon:string;
+ getContainer(element:ng.IAugmentedJQueryStatic):void;
+ }
+
+ export interface ISpinnerClickStrategies {
+ [strategyName: string]: (element:ng.IAugmentedJQueryStatic)=>void;
+ }
+
+ export interface IOnNavigateAwayStrategies {
+ [strategyName: string]: (rootFormScope:ng.IScope, rootForm:ng.IAugmentedJQueryStatic, $injector:ng.auto.IInjectorService)=>void;
+ }
+
+ export interface IValidationMessages {
+ [validationKey: string]: string;
+ }
+
+ export interface IGlobalSettings {
+ [settingName: string]: any;
+ }
+
+ export interface IFormExtensionsProvider extends ng.auto.IProvider {
+ defaultLabelStrategy:string;
+ defaultFieldGroupStrategy:string;
+ defaultValMsgPlacementStrategy:string;
+ validIconStrategy:IValidIconStrategy;
+ defaultSpinnerClickStrategy:string;
+ defaultNotifyTarget:string;
+ defaultOnNavigateAwayStrategy:string;
+ validationMessages:IValidationMessages;
+ valMsgForTemplate:string;
+ confirmResetStrategy:()=>boolean;
+ globalSettings:IGlobalSettings;
+
+ labelStrategies:ILabelStrategies;
+ fieldGroupStrategies:IFieldGroupStrategies;
+ valMsgPlacementStrategies:IValMsgPlacementStrategies;
+ spinnerClickStrategies:ISpinnerClickStrategies;
+ onNavigateAwayStrategies:IOnNavigateAwayStrategies;
+ }
+
+ export interface INotifyPredicate {
+ (message:string, options:any, notifier:any):any;
+ }
+
+ export interface INotifyDefaults {
+ success: INotifyPredicate;
+ info: INotifyPredicate;
+ warning: INotifyPredicate;
+ danger: INotifyPredicate;
+ error: INotifyPredicate;
+ }
+
+ export interface INotifyConfig {
+ name:string;
+ template?:string;
+ templateName?:string;
+ options:INotifyOptions;
+ namedDefaults:INotifyDefaults;
+ }
+
+ export interface INotifyOptions {
+ cssClasses?:string;
+ messageType:string;
+ allowHtml:boolean;
+ message:string;
+ }
+
+ export interface INotifyConfigProvider extends ng.auto.IProvider {
+ notifyConfigs:any;
+ defaultTargetContainerName:string;
+ defaultNotifyConfig:string;
+ addOrUpdateNotifyConfig(name:string, opts:INotifyConfig):void;
+ optionsTransformer(options:INotifyOptions, $sce:ng.ISCEService):void;
+ }
+
+ export interface IExternalFormValidationConfig {
+ validations:any;
+ ignore?:any;
+ globals?:any;
+ resolve?:any;
+ resolveFn?:(modelValue:string)=>string;
+ }
+}
\ No newline at end of file