import { ActorRefFromLogic, AnyActorLogic, AnyActorRef, AnyActorScope, AnyEventObject, AnyMachineSnapshot, ConditionalRequired, GetConcreteByKey, InputFrom, IsLiteralString, IsNotNever, ProvidedActor, RequiredActorOptions, type RequiredLogicInput } 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]: ConditionalRequired<[ options?: { id?: never; systemId?: string; input?: InputFrom; syncSnapshot?: boolean; } & { [K in RequiredLogicInput]: unknown; } ], IsNotNever>>): ActorRefFromLogic; } : (src: TLogic, ...[options]: ConditionalRequired<[ options?: { id?: string; systemId?: string; input?: TLogic extends string ? unknown : InputFrom; syncSnapshot?: boolean; } & (TLogic extends AnyActorLogic ? { [K in RequiredLogicInput]: unknown; } : {}) ], IsNotNever : never>>) => TLogic extends AnyActorLogic ? ActorRefFromLogic : AnyActorRef; export declare function createSpawner(actorScope: AnyActorScope, { machine, context }: AnyMachineSnapshot, event: AnyEventObject, spawnedChildren: Record): Spawner; export {};