UNPKG

@stable-io/cctp-sdk-definitions

Version:

Definitions for the CCTP SDK

20 lines 1.1 kB
import type { ApplyAliases, BaseObject } from "@stable-io/utils"; import type { Platform, DomainsOf } from "./constants/index.js"; export interface ConfigRegistry extends BaseObject { } export interface ProtocolRegistry extends BaseObject { } export interface PlatformRegistry extends BaseObject { } export type Protocol = keyof ProtocolRegistry; export type PlatformSpecificsOf<R extends Protocol, P extends Platform> = R extends keyof ProtocolRegistry ? P extends keyof ProtocolRegistry[R] ? ProtocolRegistry[R][P] : never : never; export type PlatformTypesOf<P extends Platform> = P extends keyof RegisteredPlatform ? RegisteredPlatform[P] : never; export type RegisteredPlatform = keyof PlatformRegistry; export type LoadedDomain = DomainsOf<RegisteredPlatform>; export type PlatformImplsOf<R extends Protocol> = keyof ProtocolRegistry[R]["PlatformImplsOf"]; export type Aliased<IofA extends object, Union> = [ ConfigRegistry["UseUnionAliases"] ] extends [true] ? ApplyAliases<IofA, Union> : Union; export interface DomainAliases extends BaseObject { } //# sourceMappingURL=registry.d.ts.map