import { Schema, SchemaAST } from "effect"; /** * Plutus data types and schemas for serialization/deserialization between * TypeScript types and Cardano's Plutus data format * * @since 1.0.0 */ export type Data = Integer | ByteArray | List | Map | Constr; export interface List extends ReadonlyArray { } export interface Integer { readonly int: number; } export interface ByteArray { readonly bytes: string; } export interface Constr { readonly constructor: number; readonly fields: readonly Data[]; } export interface mkConstr { readonly constructor: number; readonly fields: readonly T[]; } export type Map = { readonly [key: string]: Data; }; export declare const ByteArray: Schema.Struct<{ bytes: Schema.filter>; }>; export declare const Integer: Schema.Struct<{ int: typeof Schema.Number; }>; export declare const isInteger: (u: unknown, overrideOptions?: SchemaAST.ParseOptions | number) => u is { readonly int: number; }; export declare const isByteArray: (u: unknown, overrideOptions?: SchemaAST.ParseOptions | number) => u is { readonly bytes: string; }; export declare const List: Schema.Array$>; export declare const isList: (u: unknown, overrideOptions?: SchemaAST.ParseOptions | number) => u is readonly Data[]; export declare const Map: Schema.Record$>; export declare const isMap: (u: unknown, overrideOptions?: SchemaAST.ParseOptions | number) => u is { readonly [x: string]: Data; }; export declare const Constr: Schema.Struct<{ constructor: typeof Schema.Number; fields: Schema.Array$>; }>; export declare const isConstr: (u: unknown, overrideOptions?: SchemaAST.ParseOptions | number) => u is { readonly fields: readonly Data[]; readonly constructor: number; }; export declare const Data: Schema.Schema; export declare const mkByteArray: (bytes: string) => ByteArray; export declare const mkMap: (map: Record) => Readonly; export declare const mkInteger: (int: number) => Integer; export declare const mkConstr: (constructor: number, fields: readonly T[]) => { readonly constructor: number; readonly fields: readonly T[]; }; /** * Converts TypeScript data into CBOR hex string * * @example * import { Data, Type } from "@lucid-evolution/experimental" * * const Token = Type.Struct({ * policyId: Type.ByteArray, * assetName: Type.ByteArray, * amount: Type.Integer * }) * * const token = { * policyId: "deadbeef", * assetName: "cafe", * amount: 1000n * } * * // Convert to canonical CBOR * const cbor = Data.toCBOR(token, Token, { canonical: true }) * * @since 1.0.0 */ export declare const toCBOR: (input: unknown, schema?: Schema.Schema, options?: { canonical?: boolean; parseOptions?: SchemaAST.ParseOptions; }) => string; /** * Decodes a CBOR hex string to a TypeScript type * * @example * import { Data } from "@lucid-evolution/experimental"; * const data = Data.fromCBOR(cborHexString, schema); * * @since 1.0.0 */ export declare function fromCBOR(input: string): Data; export declare function fromCBOR(input: string, schema: Schema.Schema): Source; export declare const resolveCBOR: (input: string) => Data; /** * Decodes an unknown value from Plutus Data Constructor to a TypeScript type * * @example * import { Type , Data } from "@lucid-evolution/experimental"; * * const Token = Type.Struct({ * policyId: Type.ByteArray, * assetName: Type.ByteArray, * amount: Type.Integer * }); * * const data : unknown = { index: 0n, fields: ["deadbeef", "cafe", 1000n] }; * const token = Data.fromData(data, Token); * // { policyId: "deadbeef", assetName: "cafe", amount: 1000n } * * @since 1.0.0 */ export declare const fromData: (input: unknown, schema: Schema.Schema, options?: SchemaAST.ParseOptions) => Source; /** * Encodes a TypeScript value to Plutus Data Constructor * * @example * import { Data } from "@lucid-evolution/experimental"; * * const token : unknown = { * policyId: "deadbeef", * assetName: "cafe", * amount: 1000n * }; * const data = Data.toData(token, Token); * // { index: 0n, fields: ["deadbeef", "cafe", 1000n] } * * @since 1.0.0 */ export declare const toData: (input: unknown, schema: Schema.Schema, options?: SchemaAST.ParseOptions) => Target; //# sourceMappingURL=DataJson.d.ts.map