import { ClarityValue } from '@stacks/transactions'; type Encoder = (value: T) => ClarityValue; type UnboxEncoder> = T extends Encoder ? R : never; type Decoder = (value: ClarityValue) => T; type UnboxDecoder> = T extends Decoder ? R : never; interface Transcoder { encode: Encoder; decode: Decoder; } type UnboxTranscoder> = T extends Transcoder ? R : never; type Response = { type: "success"; value: T; } | { type: "error"; error: Error; }; type UnboxResponse> = T extends { type: "success"; value: infer R; } ? R : never; export type { Decoder, Encoder, Response, Transcoder, UnboxDecoder, UnboxEncoder, UnboxResponse, UnboxTranscoder };