import { EvaEndpoint, IEvaServiceCallOptions } from '@springtree/eva-sdk-core-service'; import { IEvaServiceDefinition } from '@springtree/eva-services-core'; import { GetRecoilValue, RecoilState, RecoilValueReadOnly } from 'recoil'; export interface IAnonymousServiceState { error: RecoilValueReadOnly; recoilKey: string; request: RecoilState; response: RecoilValueReadOnly; responseRaw: RecoilValueReadOnly; stale: RecoilState; } /** * 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 {IAnonymousServiceState} */ declare const buildAnonymousServiceState: ({ allowEmptyRequest, service, defaultRequest, key, beforeRequest, customRequest, requestedOrganizationUnitIDOverrideState, }: { allowEmptyRequest?: boolean; service: new () => SVC; defaultRequest?: SVC['request']; key?: string; beforeRequest?: (params: { req: SVC['request']; get: GetRecoilValue; }) => SVC['request']; customRequest?: (params: { endpoint: EvaEndpoint; payload?: SVC['request']; options: IEvaServiceCallOptions; }) => Promise; requestedOrganizationUnitIDOverrideState?: RecoilState; }) => IAnonymousServiceState; export default buildAnonymousServiceState; //# sourceMappingURL=build-anonymous-service-state.d.ts.map