import { EvaEndpoint, IEvaServiceCallOptions } from '@springtree/eva-sdk-core-service'; import { IEvaServiceDefinition } from '@springtree/eva-services-core'; import { GetRecoilValue, RecoilState, RecoilValueReadOnly } from 'recoil'; export interface IServiceState { error: RecoilValueReadOnly; recoilKey: string; request: RecoilState; response: RecoilValueReadOnly; responseRaw: RecoilValueReadOnly; stale: RecoilState; storage: RecoilValueReadOnly; } /** * Build the state values for an EVA service call. * As a bare minimum you need to supply the service definition from the SDK. * * The recoil `key` needs to be unique and will default to the service name. * If you require the same service for different use cases you must supply a * unique key name which should also indicate its intended purpose. * As a convenience you can use the `requireCustomer` and `requireEmployee` * flags to prevent service calls from going out depending on the current user. * * @template SVC * @param {{ * allowEmptyRequest?: boolean, * service: new () => SVC, * defaultRequest?: SVC['request'], * key?: string, * requireCustomer?: boolean, * requireEmployee?: boolean, * requireLoggedIn?: boolean, * beforeRequest?: (params: { req: SVC['request'], get: GetRecoilValue }) => SVC['request'], * requestedOrganizationUnitIDOverrideState: RecoilState, * }} { * allowEmptyRequest = true, * service, * defaultRequest, * key, * requireCustomer, * requireEmployee, * requireLoggedIn, * beforeRequest, * requestedOrganizationUnitIDOverrideState, * } * @returns {IServiceState} */ declare const buildServiceState: ({ allowEmptyRequest, service, defaultRequest, key, requireCustomer, requireEmployee, requireLoggedIn, beforeRequest, customRequest, requestedOrganizationUnitIDOverrideState, }: { allowEmptyRequest?: boolean; service: new () => SVC; defaultRequest?: SVC['request']; key?: string; requireCustomer?: boolean; requireEmployee?: boolean; requireLoggedIn?: boolean; beforeRequest?: (params: { req: SVC['request']; get: GetRecoilValue; }) => SVC['request']; customRequest?: (params: { endpoint: EvaEndpoint; payload?: SVC['request']; options: IEvaServiceCallOptions; }) => Promise; requestedOrganizationUnitIDOverrideState?: RecoilState; }) => IServiceState; export default buildServiceState; //# sourceMappingURL=build-service-state.d.ts.map