/** * @since 1.0.0 */ import * as Equal from "@fp-ts/data/Equal"; /** * @category models * @since 1.0.0 */ export type Data> | ReadonlyArray> = Readonly & Equal.Equal; /** * `Case` represents a datatype similar to a case class in Scala. Namely, a * datatype created using `Case` will, by default, provide an implementation * for a constructor, `Hash`, and `Equal`. * * @since 1.0.0 * @category models */ export interface Case extends Equal.Equal { } export declare namespace Case { /** * @since 1.0.0 * @category models */ interface Constructor { (args: Omit): A; } } /** * @category constructors * @since 1.0.0 */ export declare const struct: >>(as: As) => Data; /** * @category constructors * @since 1.0.0 */ export declare const unsafeStruct: >>(as: As) => Data; /** * @category constructors * @since 1.0.0 */ export declare const tuple: (...as: As) => Data; /** * @category constructors * @since 1.0.0 */ export declare const array: (as: As) => Data; /** * @category constructors * @since 1.0.0 */ export declare const unsafeArray: (as: As) => Data; declare const _case: () => Case.Constructor; export { /** * Provides a constructor for the specified `Case`. * * @since 1.0.0 * @category constructors */ _case as case }; /** * Provides a tagged constructor for the specified `Case`. * * @since 1.0.0 * @category constructors */ export declare const tagged: (tag: A["_tag"]) => Case.Constructor; //# sourceMappingURL=Data.d.ts.map