import { R3gRequestController } from '../hooks/requestControllerHook/types'; import { R3gInitialStateGetter, R3gReducer } from './redux/types'; /*********************************/ /******* Data Structures *******/ /*********************************/ export declare type R3gGenericResourceConfig = { name: string; identifiers: Array; primaryIdentifier: string; propertyKeys: Array; initialFields: Record; filter: (resource: Record, params: Record | Record, index?: number) => boolean; sort: (resourceA: Record, resourceB: Record, params: Record | Record) => number; postProcess: (resourceList: Array>, params: Record | Record) => Array>; apiRootPath: string; composition: Array; stateName: string; apiPayloadResourceListName: string; verboseLogging: boolean; }; export declare type R3gResourceConfigParams = { name: string; identifiers: Array; primaryIdentifier: keyof ResourceIdentifier; initialFields: ResourceBody; filter?: (resource: ResourceIdentifier & ResourceBody, params: ReadParams | Record, index?: number) => boolean; sort?: (resourceA: ResourceBody, resourceB: ResourceBody, params: ReadParams | Record) => number; postProcess?: (resourceList: Array, params: ReadParams | Record) => Array; apiRootPath?: string; composition?: Array; stateName?: string; apiPayloadResourceListName?: string; verboseLogging?: boolean; }; export declare type R3gResourceConfig = { name: string; identifiers: Array; primaryIdentifier: keyof ResourceIdentifier; propertyKeys: Array; initialFields: ResourceBody; filter: (resource: ResourceIdentifier & ResourceBody, params: ReadParams | Record, index?: number) => boolean; sort: (resourceA: ResourceBody, resourceB: ResourceBody, params: ReadParams | Record) => number; postProcess: (resourceList: Array, params: ReadParams | Record) => Array; apiRootPath: string; composition: Array; stateName: string; apiPayloadResourceListName: string; verboseLogging: boolean; }; export declare type R3gClient = { config: R3gResourceConfig; reducer: R3gReducer; useResourceScheduler: () => void; useResource: () => R3gRequestController; getInitialState: R3gInitialStateGetter; }; /*********************************/ /********* Functions ***********/ /*********************************/ export declare type R3gResourceConfigGetterParams = { resourceConfigParams: R3gResourceConfigParams; }; export declare type R3gResourceConfigGetter = (params: R3gResourceConfigGetterParams) => R3gResourceConfig; export declare type R3gClientGetter = (resourceConfigParams: R3gResourceConfigParams) => R3gClient;