///
import type { RouterContext } from '../../../index';
import type { ResourceStoreContext, ResourceStoreData, RouteResource, RouteResourceResponse, RouteResourceUpdater } from '../../common/types';
import { ContainerProps, GetResourceOptions, ResourceAction, ResourceSliceIdentifier, State } from './types';
export { createResource, ResourceDependencyError } from './utils';
export type { CreateResourceArgAsync, CreateResourceArgBase, CreateResourceArgSync, } from './utils';
export declare const privateActions: {
/**
* Clears a resource for the current key, or where context is not provided all keys.
*/
clearResource: (resource: RouteResource, routerStoreContext: RouterContext | null) => ResourceAction;
/**
* Update the data property for a resource in the cache and reset expiresAt based
* on maxAge.
*/
updateResourceState: (resource: RouteResource, routerStoreContext: RouterContext, getNewSliceData: RouteResourceUpdater) => ResourceAction;
/**
* Get a single resource, either from the cache if it exists and has not expired, or
* the remote if it has expired.
*/
getResource: (resource: RouteResource, routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction>;
/**
* Request a single resource and update the resource cache.
*/
getResourceFromRemote: (resource: RouteResource, routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction>>;
/**
* Prefetch a single resource and store in the prefetch cache.
*/
prefetchResourceFromRemote: (resource: RouteResource, routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction>;
};
export declare const actions: {
/**
* Clears a resource for the current key, or where context is not provided all keys.
* Execute such that dependencies on current route will be cleared.
*/
clearResource: (resource: RouteResource, routerStoreContext?: RouterContext) => ResourceAction;
/**
* Update the data property for a resource in the cache and reset expiresAt based
* on maxAge.
* Execute such that dependencies on current route will be updated.
*/
updateResourceState: (resource: RouteResource, routerStoreContext: RouterContext, getNewSliceData: RouteResourceUpdater) => ResourceAction;
/**
* Get a single resource, either from the cache if it exists and has not expired, or
* the remote if it has expired.
* Execute such that dependencies on current route will be updated.
*/
getResource: (resource: RouteResource, routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction>;
/**
* Request a single resource and update the resource cache.
* Execute such that dependencies on current route will be updated.
*/
getResourceFromRemote: (resource: RouteResource, routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction>;
/**
* Request all resources.
*/
requestAllResources: (routerStoreContext: RouterContext, options?: GetResourceOptions) => ResourceAction>;
/**
* Cleans expired resources and resets them back to their initial state.
* We need to do this when transitioning into a route.
*/
cleanExpiredResources: (resources: RouteResource[], routerStoreContext: RouterContext) => ResourceAction;
/**
* Requests a specific set of resources.
*/
requestResources: (resources: RouteResource[], routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction[]>;
/**
* Prefetch a specific set of resources.
*/
prefetchResources: (resources: RouteResource[], routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction[]>;
/**
* Hydrates the store with state.
* Will not override pre-hydrated state.
*/
hydrate: ({ resourceData, resourceContext, }: {
resourceData?: ResourceStoreData | undefined;
resourceContext?: ResourceStoreContext | undefined;
}) => ResourceAction;
/**
* Gets the store's context
*/
getContext: () => ResourceAction;
/**
* Returns safe, portable and rehydratable data.
*/
getSafeData: () => ResourceAction;
};
export type Actions = typeof actions;
export declare const ResourceStore: import("react-sweet-state").Store ResourceAction;
/**
* Update the data property for a resource in the cache and reset expiresAt based
* on maxAge.
* Execute such that dependencies on current route will be updated.
*/
updateResourceState: (resource: RouteResource, routerStoreContext: RouterContext, getNewSliceData: RouteResourceUpdater) => ResourceAction;
/**
* Get a single resource, either from the cache if it exists and has not expired, or
* the remote if it has expired.
* Execute such that dependencies on current route will be updated.
*/
getResource: (resource: RouteResource, routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction>;
/**
* Request a single resource and update the resource cache.
* Execute such that dependencies on current route will be updated.
*/
getResourceFromRemote: (resource: RouteResource, routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction>;
/**
* Request all resources.
*/
requestAllResources: (routerStoreContext: RouterContext, options?: GetResourceOptions) => ResourceAction>;
/**
* Cleans expired resources and resets them back to their initial state.
* We need to do this when transitioning into a route.
*/
cleanExpiredResources: (resources: RouteResource[], routerStoreContext: RouterContext) => ResourceAction;
/**
* Requests a specific set of resources.
*/
requestResources: (resources: RouteResource[], routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction[]>;
/**
* Prefetch a specific set of resources.
*/
prefetchResources: (resources: RouteResource[], routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction[]>;
/**
* Hydrates the store with state.
* Will not override pre-hydrated state.
*/
hydrate: ({ resourceData, resourceContext, }: {
resourceData?: ResourceStoreData | undefined;
resourceContext?: ResourceStoreContext | undefined;
}) => ResourceAction;
/**
* Gets the store's context
*/
getContext: () => ResourceAction;
/**
* Returns safe, portable and rehydratable data.
*/
getSafeData: () => ResourceAction;
}>;
export declare const ResourceContainer: import("react-sweet-state").ContainerComponent;
export declare const ResourceSubscriber: import("react-sweet-state").SubscriberComponent ResourceAction;
/**
* Update the data property for a resource in the cache and reset expiresAt based
* on maxAge.
* Execute such that dependencies on current route will be updated.
*/
updateResourceState: (resource: RouteResource, routerStoreContext: RouterContext, getNewSliceData: RouteResourceUpdater) => ResourceAction;
/**
* Get a single resource, either from the cache if it exists and has not expired, or
* the remote if it has expired.
* Execute such that dependencies on current route will be updated.
*/
getResource: (resource: RouteResource, routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction>;
/**
* Request a single resource and update the resource cache.
* Execute such that dependencies on current route will be updated.
*/
getResourceFromRemote: (resource: RouteResource, routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction>;
/**
* Request all resources.
*/
requestAllResources: (routerStoreContext: RouterContext, options?: GetResourceOptions) => ResourceAction>;
/**
* Cleans expired resources and resets them back to their initial state.
* We need to do this when transitioning into a route.
*/
cleanExpiredResources: (resources: RouteResource[], routerStoreContext: RouterContext) => ResourceAction;
/**
* Requests a specific set of resources.
*/
requestResources: (resources: RouteResource[], routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction[]>;
/**
* Prefetch a specific set of resources.
*/
prefetchResources: (resources: RouteResource[], routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction[]>;
/**
* Hydrates the store with state.
* Will not override pre-hydrated state.
*/
hydrate: ({ resourceData, resourceContext, }: {
resourceData?: ResourceStoreData | undefined;
resourceContext?: ResourceStoreContext | undefined;
}) => ResourceAction;
/**
* Gets the store's context
*/
getContext: () => ResourceAction;
/**
* Returns safe, portable and rehydratable data.
*/
getSafeData: () => ResourceAction;
}>, {
resourceType: string;
resourceKey: string;
}>;
export declare const getResourceStore: () => import("react-sweet-state").StoreInstance ResourceAction;
/**
* Update the data property for a resource in the cache and reset expiresAt based
* on maxAge.
* Execute such that dependencies on current route will be updated.
*/
updateResourceState: (resource: RouteResource, routerStoreContext: RouterContext, getNewSliceData: RouteResourceUpdater) => ResourceAction;
/**
* Get a single resource, either from the cache if it exists and has not expired, or
* the remote if it has expired.
* Execute such that dependencies on current route will be updated.
*/
getResource: (resource: RouteResource, routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction>;
/**
* Request a single resource and update the resource cache.
* Execute such that dependencies on current route will be updated.
*/
getResourceFromRemote: (resource: RouteResource, routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction>;
/**
* Request all resources.
*/
requestAllResources: (routerStoreContext: RouterContext, options?: GetResourceOptions) => ResourceAction>;
/**
* Cleans expired resources and resets them back to their initial state.
* We need to do this when transitioning into a route.
*/
cleanExpiredResources: (resources: RouteResource[], routerStoreContext: RouterContext) => ResourceAction;
/**
* Requests a specific set of resources.
*/
requestResources: (resources: RouteResource[], routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction[]>;
/**
* Prefetch a specific set of resources.
*/
prefetchResources: (resources: RouteResource[], routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction[]>;
/**
* Hydrates the store with state.
* Will not override pre-hydrated state.
*/
hydrate: ({ resourceData, resourceContext, }: {
resourceData?: ResourceStoreData | undefined;
resourceContext?: ResourceStoreContext | undefined;
}) => ResourceAction;
/**
* Gets the store's context
*/
getContext: () => ResourceAction;
/**
* Returns safe, portable and rehydratable data.
*/
getSafeData: () => ResourceAction;
}>;
export declare const useResourceStore: import("react-sweet-state").HookFunction ResourceAction;
/**
* Update the data property for a resource in the cache and reset expiresAt based
* on maxAge.
* Execute such that dependencies on current route will be updated.
*/
updateResourceState: (resource: RouteResource, routerStoreContext: RouterContext, getNewSliceData: RouteResourceUpdater) => ResourceAction;
/**
* Get a single resource, either from the cache if it exists and has not expired, or
* the remote if it has expired.
* Execute such that dependencies on current route will be updated.
*/
getResource: (resource: RouteResource, routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction>;
/**
* Request a single resource and update the resource cache.
* Execute such that dependencies on current route will be updated.
*/
getResourceFromRemote: (resource: RouteResource, routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction>;
/**
* Request all resources.
*/
requestAllResources: (routerStoreContext: RouterContext, options?: GetResourceOptions) => ResourceAction>;
/**
* Cleans expired resources and resets them back to their initial state.
* We need to do this when transitioning into a route.
*/
cleanExpiredResources: (resources: RouteResource[], routerStoreContext: RouterContext) => ResourceAction;
/**
* Requests a specific set of resources.
*/
requestResources: (resources: RouteResource[], routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction[]>;
/**
* Prefetch a specific set of resources.
*/
prefetchResources: (resources: RouteResource[], routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction[]>;
/**
* Hydrates the store with state.
* Will not override pre-hydrated state.
*/
hydrate: ({ resourceData, resourceContext, }: {
resourceData?: ResourceStoreData | undefined;
resourceContext?: ResourceStoreContext | undefined;
}) => ResourceAction;
/**
* Gets the store's context
*/
getContext: () => ResourceAction;
/**
* Returns safe, portable and rehydratable data.
*/
getSafeData: () => ResourceAction;
}>, ResourceSliceIdentifier>;
export declare const useResourceStoreActions: import("react-sweet-state").HookActionsFunction ResourceAction;
/**
* Update the data property for a resource in the cache and reset expiresAt based
* on maxAge.
* Execute such that dependencies on current route will be updated.
*/
updateResourceState: (resource: RouteResource, routerStoreContext: RouterContext, getNewSliceData: RouteResourceUpdater) => ResourceAction;
/**
* Get a single resource, either from the cache if it exists and has not expired, or
* the remote if it has expired.
* Execute such that dependencies on current route will be updated.
*/
getResource: (resource: RouteResource, routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction>;
/**
* Request a single resource and update the resource cache.
* Execute such that dependencies on current route will be updated.
*/
getResourceFromRemote: (resource: RouteResource, routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction>;
/**
* Request all resources.
*/
requestAllResources: (routerStoreContext: RouterContext, options?: GetResourceOptions) => ResourceAction>;
/**
* Cleans expired resources and resets them back to their initial state.
* We need to do this when transitioning into a route.
*/
cleanExpiredResources: (resources: RouteResource[], routerStoreContext: RouterContext) => ResourceAction;
/**
* Requests a specific set of resources.
*/
requestResources: (resources: RouteResource[], routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction[]>;
/**
* Prefetch a specific set of resources.
*/
prefetchResources: (resources: RouteResource[], routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction[]>;
/**
* Hydrates the store with state.
* Will not override pre-hydrated state.
*/
hydrate: ({ resourceData, resourceContext, }: {
resourceData?: ResourceStoreData | undefined;
resourceContext?: ResourceStoreContext | undefined;
}) => ResourceAction;
/**
* Gets the store's context
*/
getContext: () => ResourceAction;
/**
* Returns safe, portable and rehydratable data.
*/
getSafeData: () => ResourceAction;
}>>;
export declare const useResourceStoreContext: import("react-sweet-state").HookFunction ResourceAction;
/**
* Update the data property for a resource in the cache and reset expiresAt based
* on maxAge.
* Execute such that dependencies on current route will be updated.
*/
updateResourceState: (resource: RouteResource, routerStoreContext: RouterContext, getNewSliceData: RouteResourceUpdater) => ResourceAction;
/**
* Get a single resource, either from the cache if it exists and has not expired, or
* the remote if it has expired.
* Execute such that dependencies on current route will be updated.
*/
getResource: (resource: RouteResource, routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction>;
/**
* Request a single resource and update the resource cache.
* Execute such that dependencies on current route will be updated.
*/
getResourceFromRemote: (resource: RouteResource, routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction>;
/**
* Request all resources.
*/
requestAllResources: (routerStoreContext: RouterContext, options?: GetResourceOptions) => ResourceAction>;
/**
* Cleans expired resources and resets them back to their initial state.
* We need to do this when transitioning into a route.
*/
cleanExpiredResources: (resources: RouteResource[], routerStoreContext: RouterContext) => ResourceAction;
/**
* Requests a specific set of resources.
*/
requestResources: (resources: RouteResource[], routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction[]>;
/**
* Prefetch a specific set of resources.
*/
prefetchResources: (resources: RouteResource[], routerStoreContext: RouterContext, options: GetResourceOptions) => ResourceAction[]>;
/**
* Hydrates the store with state.
* Will not override pre-hydrated state.
*/
hydrate: ({ resourceData, resourceContext, }: {
resourceData?: ResourceStoreData | undefined;
resourceContext?: ResourceStoreContext | undefined;
}) => ResourceAction;
/**
* Gets the store's context
*/
getContext: () => ResourceAction;
/**
* Returns safe, portable and rehydratable data.
*/
getSafeData: () => ResourceAction;
}>, void>;