import type { ReactNode } from 'react'; import type { InferOptionalWaitableAndBindingValueTypes, InferRequiredWaitableAndBindingValueTypes } from '../../../waitable/types/infer-waitable-and-binding-value-types'; import type { WaitableDependencies } from '../../../waitable/types/waitable-dependencies'; /** A transformer that requires all waitable values to be loaded. */ export type WaitablesConsumerRequiredValuesTransformer = (dependencyValues: InferRequiredWaitableAndBindingValueTypes, dependencies: DependenciesT) => ReactNode; /** A transformer that doesn't require all waitable values to be loaded. */ export type WaitablesConsumerOptionalValuesTransformer = (dependencyValues: InferOptionalWaitableAndBindingValueTypes, dependencies: DependenciesT) => ReactNode; /** * Transformers that are used depending on the state of the waitables. * * The first applicable transformer is used, evaluated in the following order: `ifLoaded`, `ifError`, `ifLoading`, `ifErrorOrLoading`, * `always` */ export interface WaitablesConsumerNamedTransformers { /** All waitables have defined values */ ifLoaded?: WaitablesConsumerRequiredValuesTransformer; /** At least one waitable has a defined error */ ifError?: WaitablesConsumerOptionalValuesTransformer; /** At least one waitable doesn't have a defined value but no waitables have defined errors */ ifLoading?: WaitablesConsumerOptionalValuesTransformer; /** At least one waitable doesn't have a defined value or at least one waitable has a defined error */ ifErrorOrLoading?: WaitablesConsumerOptionalValuesTransformer; /** Always applicable */ always?: WaitablesConsumerOptionalValuesTransformer; } //# sourceMappingURL=transformers.d.ts.map