import { AxiosResponse } from 'axios'; import { R3gResourceConfig } from '../client/types'; /*********************************/ /********* Primitives **********/ /*********************************/ export declare type R3gRequestMethod = 'get' | 'post' | 'put' | 'delete'; /*********************************/ /******* Data Structures *******/ /*********************************/ export declare type R3gCreateResultPayload = ResourceIdentifier | null; export declare type R3gReadResultPayload = Record>; export declare type R3gRequestResultPayload = R3gCreateResultPayload | R3gReadResultPayload | null; export declare type R3gAxiosCreateSuccessResponseData = { message: string; payload: R3gCreateResultPayload; }; export declare type R3gAxiosCreateErrorResponseData = { message: string; payload: null; }; export declare type R3gAxiosReadSuccessResponseData = { message: string; payload: R3gReadResultPayload; }; export declare type R3gAxiosReadErrorResponseData = { message: string; payload: null; }; export declare type R3gAxiosUpdateSuccessResponseData = { message: string; payload: null; }; export declare type R3gAxiosUpdateErrorResponseData = { message: string; payload: null; }; export declare type R3gAxiosDeleteSuccessResponseData = { message: string; payload: null; }; export declare type R3gAxiosDeleteErrorResponseData = { message: string; payload: null; }; export declare type R3gAxiosResponseData = R3gAxiosCreateSuccessResponseData | R3gAxiosCreateErrorResponseData | R3gAxiosReadSuccessResponseData | R3gAxiosReadErrorResponseData | R3gAxiosUpdateSuccessResponseData | R3gAxiosUpdateErrorResponseData | R3gAxiosDeleteSuccessResponseData | R3gAxiosDeleteErrorResponseData; export declare type R3gRequest = { requestKey: string; hookKey: string; method: R3gRequestMethod; url: string; body: string | null; }; export declare type R3gCreateRequestSuccessResult = { requestKey: string; hookKey: string; method: 'post'; status: number; success: true; message: string; payload: R3gCreateResultPayload; }; export declare type R3gCreateRequestErrorResult = { requestKey: string; hookKey: string; method: 'post'; status: number; success: false; message: string; payload: null; }; export declare type R3gReadRequestSuccessResult = { requestKey: string; hookKey: string; method: 'get'; status: number; success: true; message: string; payload: R3gReadResultPayload; }; export declare type R3gReadRequestErrorResult = { requestKey: string; hookKey: string; method: 'get'; status: number; success: false; message: string; payload: null; }; export declare type R3gUpdateRequestSuccessResult = { requestKey: string; hookKey: string; method: 'put'; status: number; success: true; message: string; payload: null; }; export declare type R3gUpdateRequestErrorResult = { requestKey: string; hookKey: string; method: 'put'; status: number; success: false; message: string; payload: null; }; export declare type R3gDeleteRequestSuccessResult = { requestKey: string; hookKey: string; method: 'delete'; status: number; success: true; message: string; payload: null; }; export declare type R3gDeleteRequestErrorResult = { requestKey: string; hookKey: string; method: 'delete'; status: number; success: false; message: string; payload: null; }; export declare type R3gRequestResult = R3gCreateRequestSuccessResult | R3gCreateRequestErrorResult | R3gReadRequestSuccessResult | R3gReadRequestErrorResult | R3gUpdateRequestSuccessResult | R3gUpdateRequestErrorResult | R3gDeleteRequestSuccessResult | R3gDeleteRequestErrorResult; /*********************************/ /********* Functions ***********/ /*********************************/ export declare type R3gAxiosResponseValidationState = 'VALID' | 'UNEXPECTED_PAYLOAD' | 'NO_MESSAGE' | 'NO_PAYLOAD' | 'WRONG_PAYLOAD_FORMAT' | 'UNRECOGNIZED_METHOD'; export declare type R3gAxiosResponseValidatorParams = { resourceIdentifierKeys: Array; resourceListName: string; resourcePropertyKeys: Array; method: R3gRequestMethod; axiosResponse: AxiosResponse>; }; export declare type R3gAxiosResponseValidator = (params: R3gAxiosResponseValidatorParams) => R3gAxiosResponseValidationState; export declare type R3gRequestResultGetterParams = { hookKey: string; requestKey: string; method: R3gRequestMethod; status: number; axiosResponseData: R3gAxiosResponseData; }; export declare type R3gRequestResultGetter = (params: R3gRequestResultGetterParams) => R3gRequestResult; export declare type R3gStringifiedParamsGetterValidationState = 'VALID' | 'INVALID_ARRAY_ELEMENT' | 'NO_TO_STRING_METHOD'; export declare type R3gStringifiedParamsGetterValidatorResult = { validationStatus: R3gStringifiedParamsGetterValidationState; erroneousParamKey: string | null; }; export declare type R3gStringifiedParamsGetterValidator = (params: Record) => R3gStringifiedParamsGetterValidatorResult; export declare type R3gStringifiedParamsGetter = (params: Record) => Record; export declare type R3gSingleAnonApiUrlGetterParams = { parentsIdentifier: Record; resourceConfig: R3gResourceConfig; }; export declare type R3gSingleAnonApiUrlGetter = (params: R3gSingleAnonApiUrlGetterParams) => string; export declare type R3gSingleApiUrlGetterParams = { resourceIdentifier: ResourceIdentifier; resourceConfig: R3gResourceConfig; }; export declare type R3gSingleApiUrlGetter = (params: R3gSingleApiUrlGetterParams) => string; export declare type R3gManyApiUrlGetterParams = { readParams: ReadParams; resourceConfig: R3gResourceConfig; }; export declare type R3gManyApiUrlGetter = (params: R3gManyApiUrlGetterParams) => string;