import type { z } from 'zod/v4' import type { FactoryContext } from '../internal/context/factory-context.mjs' import type { InjectionTokenSchemaType } from '../token/injection-token.mjs' export interface Factorable { create(ctx?: FactoryContext): Promise | T } export interface FactorableWithArgs { create(ctx?: FactoryContext, ...args: [z.output]): Promise | T }