import type { AnyRecord, EmptyObject } from '../BaseTypes'; import type { AnyEffectFactory, EffectFactory } from '../effect/Types'; import type { AnyExecutionContext, ExecutionContext } from './ExecutionContext'; type ContextWithExtensionFactories = T extends [ EffectFactory, ...infer R ] ? P & (R extends AnyEffectFactory[] ? ContextWithExtensionFactories : EmptyObject) : EmptyObject; type ContextRegistryMap = C extends ExecutionContext ? R : AnyRecord; export type ContextUsing = ExecutionContext & BaseContext['effects'], ContextRegistryMap>; export type ContextHaving = ExecutionContext & Dependencies & Partial>; export type PrintConfig = { styled: boolean; cascading: boolean; }; export interface ErrorWithPath extends Error { path: string[]; printPath: (config?: PrintConfig) => void; } export {};