// Type definitions for Restangular v1.2.2 // Project: https://github.com/mgonto/restangular // Definitions by: Boris Yankov // Definitions: https://github.com/borisyankov/DefinitelyTyped /// interface RestangularRequestConfig { params?: any; headers?: any; cache?: any; withCredentials?: boolean; data?: any; transformRequest?: any; transformResponse?: any; timeout?: any; // number | promise } interface Restangular extends RestangularCustom { one(route: string, id?: number): RestangularElement; one(route: string, id?: string): RestangularElement; oneUrl(route: string, url: string): RestangularElement; all(route: string): RestangularCollection; allUrl(route: string, url: string): RestangularCollection; copy(fromElement: any): RestangularElement; withConfig(configurer: (RestangularProvider: RestangularProvider) => any): Restangular; restangularizeElement(parent: any, element: any, route: string, collection?: any, reqParams?: any): RestangularElement; restangularizeCollection(parent: any, element: any, route: string): RestangularCollection; stripRestangular(element: any): any; } interface RestangularElement extends Restangular { get(queryParams?: any, headers?: any): ng.IPromise; getList(subElement: any, queryParams?: any, headers?: any): ng.IPromise; put(queryParams?: any, headers?: any): ng.IPromise; post(subElement: any, elementToPost: any, queryParams?: any, headers?: any): ng.IPromise; remove(queryParams?: any, headers?: any): ng.IPromise; head(queryParams?: any, headers?: any): ng.IPromise; trace(queryParams?: any, headers?: any): ng.IPromise; options(queryParams?: any, headers?: any): ng.IPromise; patch(queryParams?: any, headers?: any): ng.IPromise; withHttpConfig(httpConfig: RestangularRequestConfig): RestangularElement; getRestangularUrl(): string; } interface RestangularCollection extends Restangular { getList(queryParams?: any, headers?: any): ng.IPromise; post(elementToPost: any, queryParams?: any, headers?: any): ng.IPromise; head(queryParams?: any, headers?: any): ng.IPromise; trace(queryParams?: any, headers?: any): ng.IPromise; options(queryParams?: any, headers?: any): ng.IPromise; patch(queryParams?: any, headers?: any): ng.IPromise; putElement(idx: any, params: any, headers: any): ng.IPromise; withHttpConfig(httpConfig: RestangularRequestConfig): RestangularCollection; getRestangularUrl(): string; } interface RestangularCustom { customGET(path: string, params?: any, headers?: any): ng.IPromise; customGETLIST(path: string, params?: any, headers?: any): ng.IPromise; customDELETE(path: string, params?: any, headers?: any): ng.IPromise; customPOST(path: string, params?: any, headers?: any, elem?: any): ng.IPromise; customPUT(path: string, params?: any, headers?: any, elem?: any): ng.IPromise; customOperation(operation: string, path: string, params?: any, headers?: any, elem?: any): ng.IPromise; addRestangularMethod(name: string, operation: string, path?: string, params?: any, headers?: any, elem?: any): ng.IPromise; } interface RestangularProvider { setBaseUrl(baseUrl: string): void; setExtraFields(fields: string[]): void; setParentless(parentless: boolean, routes: string[]): void; setDefaultHttpFields(httpFields: any): void; addElementTransformer(route: string, transformer: Function): void; addElementTransformer(route: string, isCollection: boolean, transformer: Function): void; setOnElemRestangularized(callback: (elem: any, isCollection: boolean, what: string, restangular: Restangular) => any): void; setResponseInterceptor(responseInterceptor: (data: any, operation: string, what: string, url: string, response: RestangularResponse, deferred: ng.IDeferred) => any): void; setResponseExtractor(responseInterceptor: (data: any, operation: string, what: string, url: string, response: RestangularResponse, deferred: ng.IDeferred) => any): void; setRequestInterceptor(requestInterceptor: (element: any, operation: string, what: string, url: string) => any): void; setFullRequestInterceptor(fullRequestInterceptor: (element: any, operation: string, what: string, url: string, headers: any, params: any) => {element: any; headers: any; params: any}): void; setErrorInterceptor(errorInterceptor: (response: RestangularResponse) => any): void; setRestangularFields(fields: {[fieldName: string]: string}): void; setMethodOverriders(overriders: string[]): void; setDefaultRequestParams(params: any): void; setDefaultRequestParams(methods: any, params: any): void; setFullResponse(fullResponse: boolean): void; setDefaultHeaders(headers: any): void; setRequestSuffix(suffix: string): void; setUseCannonicalId(useCannonicalId: boolean): void; } interface RestangularResponse { status: number; data: any; config: { method: string; url: string; params: any; } } declare var Restangular: Restangular; declare var RestangularProvider: RestangularProvider;