///
export interface ActionPerformResponse {
completedAt?: number;
initiatedAt?: number;
success?: any;
error?: any;
}
export interface ModelConstructorOptions {
id?: any;
entities?: any;
entityType?: string;
value?: any;
meta?: any;
schema?: any;
denormalize?: any;
formatter?: (value: any | undefined, options: ModelConstructorOptions) => any;
arrayEntrySchema?: any;
}
export interface FormatterOptions {
id?: any;
actionId?: any;
entityType: string;
}
export declare type Formatter = (data: any, options: FormatterOptions) => FormatterResponse;
export interface FetchActionOptions {
id: any;
url: string;
params?: any;
formatter?(payload: any, options: FormatterOptions): any;
schema?: any;
replaceModel?: boolean;
bubbleUp?: boolean;
successAction?: any;
errorAction?: any;
clearAfter?: boolean;
}
export interface ActionOptions {
id: any;
actionId: any;
url: string;
params?: object;
formatter?(payload: any, options: FormatterOptions): any;
schema?: any;
replaceModel?: boolean;
bubbleUp?: boolean;
successAction?: any;
errorAction?: any;
clearAfter?: boolean;
}
export interface ActionCreatorOptions {
actionPrefix: string;
entityType: string;
normalize?: boolean;
bubbleUp?: boolean;
debug?: boolean;
}
export interface ActionCreator {
createModelDataAction(id: any, data?: any): any;
createLocalPutAction(id: any, data: any): any;
createLocalDeleteAction(id: any): any;
createFetchAction(options: FetchActionOptions): any;
createGetAction(options: ActionOptions): any;
createPatchction(options: ActionOptions): any;
createPostAction(options: ActionOptions): any;
createPutAction(options: ActionOptions): any;
createDeleteAction(options: ActionOptions): any;
}
export interface BeforeAfterReduceParam {
id: any;
action?: string;
entities: any;
result?: any;
data?: any;
state: any;
}
export interface ReducerOptions {
entityType: string;
actionPrefix: string;
beforeReduce?(options: BeforeAfterReduceParam, meta?: any): any;
afterReduce?(options: BeforeAfterReduceParam, meta?: any): any;
bubbleUp?: boolean;
debug?: any;
}
export interface ModelProviderModelOptions {
id: any;
entityType: string;
propName?: any;
idPropName?: any;
fetchProp?: any;
modelClass?: any;
fetchOptions?: any;
forceFetch?: any;
arrayEntrySchema?: any;
denormalize?: any;
}
export interface ModelProviderOptions {
debug?: boolean;
model?: ModelProviderModelOptions;
models?: Array;
entitiesProp?: string;
onIdChange?(newId: any, prevId: any, props: any): any;
}
export declare type ModelProviderResponse = (component: any) => JSX.Element;
export interface FormatterResponse {
result?: any;
response?: any;
entities?: object;
bubbleUp?: boolean;
actionId?: any;
id?: any;
data?: object;
}
export interface ModelCacheOptions {
id: any;
entityType: any;
modelClass?: any;
entities?: any;
}