// Type definitions for Restangular v0.8.0 - 2013-06-03 // Project: https://github.com/mgonto/restangular // Definitions by: Boris Yankov // Definitions: https://github.com/borisyankov/DefinitelyTyped /// interface Restangular extends RestangularCustom { one(route: string, id?: number): RestangularElement; one(route: string, id?: string): RestangularElement; all(route: string): RestangularCollection; copy(fromElement: any): RestangularElement; withConfig(configurer: (RestangularProvider) => any): Restangular; } 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, elementToPost, queryParams?, headers?): ng.IPromise; remove(queryParams?, headers?): ng.IPromise; head(queryParams?, headers?): ng.IPromise; trace(queryParams?, headers?): ng.IPromise; options(queryParams?, headers?): ng.IPromise; patch(queryParams?, headers?): ng.IPromise; getRestangularUrl(): string; } interface RestangularCollection extends Restangular { getList(queryParams?, headers?): ng.IPromise; post(elementToPost, queryParams?, headers?): ng.IPromise; head(queryParams?, headers?): ng.IPromise; trace(queryParams?, headers?): ng.IPromise; options(queryParams?, headers?): ng.IPromise; patch(queryParams?, headers?): ng.IPromise; putElement(idx, params, headers): ng.IPromise; getRestangularUrl(): string; } interface RestangularCustom { customGET(path, params?, headers?): ng.IPromise; customGETLIST(path, params?, headers?): ng.IPromise; customDELETE(path, params?, headers?): ng.IPromise; customPOST(path, params?, headers?, elem?): ng.IPromise; customPUT(path, params?, headers?, elem?): ng.IPromise; customOperation(operation, path, params?, headers?, elem?): ng.IPromise; addRestangularMethod(name, operation, path?, params?, headers?, elem?): 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: any, deferred: ng.IDeferred) => any): void; setResponseExtractor(responseInterceptor: (data: any, operation: string, what: string, url: string, response: any, deferred: ng.IDeferred) => any): void; setRequestInterceptor(requestInterceptor: (element: any, operation: string, what: string, url: string) => any); setFullRequestInterceptor(fullRequestInterceptor: (element: any, operation: string, what: string, url: string, headers: any, params: any) => {element: any; headers: any; params: any}); setErrorInterceptor(errorInterceptor: (response: any) => 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; } declare var Restangular: Restangular; declare var RestangularProvider: RestangularProvider;