/** * @since 0.24.0 */ import type { Kind, TypeLambda } from "effect/HKT"; import type { Of } from "./Of.js"; import type { SemiProduct } from "./SemiProduct.js"; /** * @category type class * @since 0.24.0 */ export interface Product extends SemiProduct, Of { readonly productAll: (collection: Iterable>) => Kind>; } /** * @since 0.24.0 */ export declare const tuple: (F: Product) => >>(...elements: T) => Kind] ? R : never), (T[number] extends never ? never : [T[number]] extends [Kind] ? O : never), (T[number] extends never ? never : [T[number]] extends [Kind] ? E : never), { [I in keyof T]: [T[I]] extends [Kind] ? A : never; }>; /** * @since 0.24.0 */ export declare const struct: (F: Product) => ; }>(fields: R) => Kind] ? R_1 : never), (R[keyof R] extends never ? never : [R[keyof R]] extends [Kind] ? O : never), (R[keyof R] extends never ? never : [R[keyof R]] extends [Kind] ? E : never), { [K in keyof R]: [R[K]] extends [Kind] ? A : never; }>; //# sourceMappingURL=Product.d.ts.map