import type { Effect } from "../Effect/index.js"; import type { Sync } from "../Sync/index.js"; import type { UnifiableIndexed } from "./index.js"; export declare const unifyIndex: unique symbol; export declare type unifyIndex = typeof unifyIndex; export declare type UnifiableIndexedURI = keyof UnifiableIndexed; export interface Unifiable { Sync: [X] extends [Sync] ? Sync : never; Effect: [X] extends [Effect] ? [X] extends [Sync] ? never : Effect : never; Unify: [X] extends [{ readonly [unifyIndex]: infer K; }] ? K extends UnifiableIndexedURI ? UnifiableIndexed[K] : never : never; } export declare type Unify = Unifiable[keyof Unifiable] extends never ? X : Unifiable[keyof Unifiable]; //# sourceMappingURL=union.d.ts.map