// Type definitions for Restangular v1.4.0 // Project: https://github.com/mgonto/restangular // Definitions by: Boris Yankov // Definitions: https://github.com/borisyankov/DefinitelyTyped /// // Support AMD require (copying angular.d.ts approach) // allows for import {IRequestConfig} from 'restangular' ES6 approach declare module 'restangular' { export = restangular; } declare module restangular { interface IPromise extends angular.IPromise { call(methodName: string, params?: any): IPromise; get(fieldName: string): IPromise; $object: T; } interface ICollectionPromise extends angular.IPromise { push(object: any): ICollectionPromise; call(methodName: string, params?: any): ICollectionPromise; get(fieldName: string): ICollectionPromise; $object: T[]; } interface IResponse { status: number; data: any; headers(name: string): string; config: { method: string; url: string; params: any; } } interface IProvider { 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; setTransformOnlyServerElements(active: boolean): void; setOnElemRestangularized(callback: (elem: any, isCollection: boolean, what: string, restangular: IService) => any): void; setResponseInterceptor(responseInterceptor: (data: any, operation: string, what: string, url: string, response: IResponse, deferred: angular.IDeferred) => any): void; setResponseExtractor(responseInterceptor: (data: any, operation: string, what: string, url: string, response: IResponse, deferred: angular.IDeferred) => any): void; addResponseInterceptor(responseInterceptor: (data: any, operation: string, what: string, url: string, response: IResponse, deferred: angular.IDeferred) => any): void; setRequestInterceptor(requestInterceptor: (element: any, operation: string, what: string, url: string) => any): void; addRequestInterceptor(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, httpConfig: angular.IRequestShortcutConfig) => {element: any; headers: any; params: any}): void; addFullRequestInterceptor(requestInterceptor: (element: any, operation: string, what: string, url: string, headers: any, params: any, httpConfig: angular.IRequestShortcutConfig) => {headers: any; params: any; element: any; httpConfig: angular.IRequestShortcutConfig}): void; setErrorInterceptor(errorInterceptor: (response: IResponse, deferred: angular.IDeferred) => any): void; setRestangularFields(fields: {[fieldName: string]: string}): void; setMethodOverriders(overriders: string[]): void; setJsonp(jsonp: boolean): void; setDefaultRequestParams(params: any): void; setDefaultRequestParams(method: string, params: any): void; setDefaultRequestParams(methods: string[], params: any): void; setFullResponse(fullResponse: boolean): void; setDefaultHeaders(headers: any): void; setRequestSuffix(suffix: string): void; setUseCannonicalId(useCannonicalId: boolean): void; setEncodeIds(encode: boolean): void; } interface ICustom { customGET(path: string, params?: any, headers?: any): IPromise; customGETLIST(path: string, params?: any, headers?: any): ICollectionPromise; customDELETE(path: string, params?: any, headers?: any): IPromise; customPOST(elem?: any, path?: string, params?: any, headers?: any): IPromise; customPUT(elem?: any, path?: string, params?: any, headers?: any): IPromise; customOperation(operation: string, path: string, params?: any, headers?: any, elem?: any): IPromise; addRestangularMethod(name: string, operation: string, path?: string, params?: any, headers?: any, elem?: any): IPromise; } interface IService extends ICustom, IProvider { one(route: string, id?: number): IElement; one(route: string, id?: string): IElement; getList(queryParams?: any, headers?: any): ICollectionPromise; getList(queryParams?: any, headers?: any): ICollectionPromise; put(queryParams?: any, headers?: any): IPromise; oneUrl(route: string, url: string): IElement; put(queryParams?: any, headers?: any): IPromise; all(route: string): IElement; allUrl(route: string, url: string): IElement; copy(fromElement: any): IElement; withConfig(configurer: (RestangularProvider: IProvider) => any): IService; restangularizeElement(parent: any, element: any, route: string, collection?: any, reqParams?: any): IElement; restangularizeCollection(parent: any, element: any, route: string): ICollection; service(route: string, parent?: any): IService; stripRestangular(element: any): any; extendModel(route: string, extender: (model: IElement) => any): void; } interface IElement extends IService { get(queryParams?: any, headers?: any): IPromise; get(queryParams?: any, headers?: any): IPromise; getList(subElement?: any, queryParams?: any, headers?: any): ICollectionPromise; getList(subElement?: any, queryParams?: any, headers?: any): ICollectionPromise; put(queryParams?: any, headers?: any): IPromise; post(subElement: any, elementToPost: any, queryParams?: any, headers?: any): IPromise; post(subElement: any, elementToPost: T, queryParams?: any, headers?: any): IPromise; post(elementToPost: any, queryParams?: any, headers?: any): IPromise; post(elementToPost: T, queryParams?: any, headers?: any): IPromise; remove(queryParams?: any, headers?: any): IPromise; head(queryParams?: any, headers?: any): IPromise; trace(queryParams?: any, headers?: any): IPromise; options(queryParams?: any, headers?: any): IPromise; patch(queryParams?: any, headers?: any): IPromise; clone(): IElement; plain(): any; plain(): T; withHttpConfig(httpConfig: angular.IRequestShortcutConfig): IElement; save(queryParams?: any, headers?: any): IPromise; getRestangularUrl(): string; } interface ICollection extends IService, Array { getList(queryParams?: any, headers?: any): ICollectionPromise; getList(queryParams?: any, headers?: any): ICollectionPromise; post(elementToPost: any, queryParams?: any, headers?: any): IPromise; post(elementToPost: T, queryParams?: any, headers?: any): IPromise; head(queryParams?: any, headers?: any): IPromise; trace(queryParams?: any, headers?: any): IPromise; options(queryParams?: any, headers?: any): IPromise; patch(queryParams?: any, headers?: any): IPromise; putElement(idx: any, params: any, headers: any): IPromise; withHttpConfig(httpConfig: angular.IRequestShortcutConfig): ICollection; clone(): ICollection; plain(): any; plain(): T[]; getRestangularUrl(): string; } }