import { PublicKey } from '@solana/web3.js'; type Primitive = boolean | number | string | null | undefined | PublicKey; /** * * @example * ```typescript * interface A { * keyA: string; * keyB: string; * map: { * hello: string; * i: number; * }; * list: (string | number)[]; * keyC: number; * } * * type WrappedA = ReplaceType // { * keyA: boolean; * keyB: boolean; * map: { * hello: boolean; * i: number; * }; * list: (number | boolean)[]; * keyC: number; * } * ``` */ export type ReplaceType = { [T in keyof Old]: Old[T] extends From ? Exclude | To : Old[T] extends Primitive ? From extends Old[T] ? Exclude | To : Old[T] : ReplaceType; }; export declare function jsonInfo2PoolKeys(jsonInfo: T): ReplaceType; export declare function poolKeys2JsonInfo(jsonInfo: T): ReplaceType; export {};