;
}
export interface APIRequestInit {
vc: IContext;
params?: P;
data?: D;
init?: IInit;
marshal?: boolean;
}
export interface APIRequestGenericInit
extends APIRequestInit
{
method: APIMethod;
}
/**
* APIEndpoint class; api endpoints are objects of this class, inheriting all it's prototype properties
* have to supply appropriate endpoint configuration, to instantiate an endpoint object;
* provides methods corresponding to HTTP methods get, post, put, delete
* also provides method specific marshaller methods too, so that we can first request pure responses, and then marshal when required. needed in environments where POJOS are needed.
*/
export declare class APIEndpoint {
[x: string]: any;
private config;
private endpointUrlFn;
constructor(config: IEndpointConfig);
/**
* returns full url computed from params. if required params for a given endpoint are not present, raises APIClientError
* @param vc - Context
* @param params - params associated with endpont
*/
url({ vc, params }: {
vc: IContext;
params?: GP;
}): string;
private getMethodConfig;
marshalResponse(method: APIMethod, response: IResponse, mr?: IModelsRegistry): any;
request({ vc, method, params, data, init, marshal }: APIRequestGenericInit): Promise>;
get({ vc, params, init, marshal }: APIRequestInit): Promise>;
marshalGetResponse(response: IResponse, mr?: IModelsRegistry): IResponse;
post({ vc, params, data, init, marshal }: APIRequestInit): Promise>;
marshalPostResponse(response: IResponse, mr?: IModelsRegistry): IResponse;
put({ vc, params, data, init, marshal }: APIRequestInit): Promise>;
marshalPutResponse(response: IResponse, mr?: IModelsRegistry): IResponse;
delete({ vc, params, data, init, marshal }: APIRequestInit): Promise>;
marshalDeleteResponse(response: IResponse, mr?: IModelsRegistry): IResponse;
private computeURLParts;
}
declare const _default: {
APIRequest: typeof APIRequest;
APIEndpoint: typeof APIEndpoint;
};
export default _default;