import { R3gResourceConfig } from '../../client/types'; import { R3gCreatorRecord } from '../../redux/creators/types'; import { R3gCreateResultPayload, R3gReadResultPayload, R3gRequestMethod } from '../../request/types'; /*********************************/ /******* Data Structures *******/ /*********************************/ export declare type R3gCreateOperationSuccessResult = { status: number; message: string; payload: R3gCreateResultPayload; }; export declare type R3gCreateOperationErrorResult = { status: number; message: string; payload: null; }; export declare type R3gCreateOperationResult = R3gCreateOperationSuccessResult | R3gCreateOperationErrorResult; export declare type R3gReadOperationSuccessResult = { status: number; message: string; payload: R3gReadResultPayload; }; export declare type R3gReadOperationErrorResult = { status: number; message: string; payload: null; }; export declare type R3gReadOperationResult = R3gReadOperationSuccessResult | R3gReadOperationErrorResult; export declare type R3gUpdateOperationSuccessResult = { status: number; message: string; payload: null; }; export declare type R3gUpdateOperationErrorResult = { status: number; message: string; payload: null; }; export declare type R3gUpdateOperationResult = R3gUpdateOperationSuccessResult | R3gUpdateOperationErrorResult; export declare type R3gDeleteOperationSuccessResult = { status: number; message: string; payload: null; }; export declare type R3gDeleteOperationErrorResult = { status: number; message: string; payload: null; }; export declare type R3gDeleteOperationResult = R3gDeleteOperationSuccessResult | R3gDeleteOperationErrorResult; export declare type R3gRequestController = { fetching: boolean; method: R3gRequestMethod | null; status: number | null; message: string | null; clearResponse: () => void; create: (parentsIdentifier?: Record, overrideData?: ResourceBody) => Promise>; read: (params: ReadParams) => Promise>; update: (resourceIdentifier: ResourceIdentifier, overrideData?: ResourceBody) => Promise; delete: (resourceIdentifier: ResourceIdentifier) => Promise; getField: (name: keyof ResourceBody) => unknown; setField: (name: keyof ResourceBody, value: unknown) => void; clearFields: () => void; getMany: (params?: ReadParams) => Array; getOne: (resourceIdentifier: ResourceIdentifier) => (ResourceIdentifier & ResourceBody) | null; invalidate: () => void; }; export declare type R3gGenericRequestControllerHook = (creators: R3gCreatorRecord, resourceConfig: R3gResourceConfig) => R3gRequestController;