import { Effect, Stream, Subscribable } from "effect" export const zipLatestAll = >>( ...subscribables: T ): Subscribable.Subscribable< [T[number]] extends [never] ? never : { [K in keyof T]: T[K] extends Subscribable.Subscribable ? A : never }, [T[number]] extends [never] ? never : T[number] extends Subscribable.Subscribable ? _E : never, [T[number]] extends [never] ? never : T[number] extends Subscribable.Subscribable ? _R : never > => Subscribable.make({ get: Effect.all(subscribables.map(v => v.get)), changes: Stream.zipLatestAll(...subscribables.map(v => v.changes)), }) as any export * from "effect/Subscribable"