import { ActorRefFromLogic, AnyActorLogic, AnyActorRef, AnyActorScope, AnyEventObject, AnyMachineSnapshot, ConditionalRequired, GetConcreteByKey, InputFrom, IsLiteralString, IsNotNever, ProvidedActor, RequiredActorOptions } from "./types.js"; type SpawnOptions = TActor extends { src: TSrc; } ? ConditionalRequired<[ options?: { id?: TActor['id']; systemId?: string; input?: InputFrom; syncSnapshot?: boolean; } & { [K in RequiredActorOptions]: unknown; } ], IsNotNever>> : never; export type Spawner = IsLiteralString extends true ? { (logic: TSrc, ...[options]: SpawnOptions): ActorRefFromLogic['logic']>; (src: TLogic, options?: { id?: never; systemId?: string; input?: InputFrom; syncSnapshot?: boolean; }): ActorRefFromLogic; } : (src: TLogic, options?: { id?: string; systemId?: string; input?: TLogic extends string ? unknown : InputFrom; syncSnapshot?: boolean; }) => TLogic extends AnyActorLogic ? ActorRefFromLogic : AnyActorRef; export declare function createSpawner(actorScope: AnyActorScope, { machine, context }: AnyMachineSnapshot, event: AnyEventObject, spawnedChildren: Record): Spawner; export {};