@stable-io/cctp-sdk-definitions
Version:
Definitions for the CCTP SDK
20 lines • 1.1 kB
TypeScript
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