import { IAccount } from '../models/TAccount'; import { TEth } from '../models/TEth'; import { TxWriter } from '../txs/TxWriter'; type NoneMethodKeys = { [P in keyof T]: T[P] extends ((...args: any[]) => any) ? never : P; }[keyof T]; export type InterfaceOf = Omit>>; export type ValuesOf = T[number]; export type DeepPartial = { [P in keyof T]?: T[P] extends Array ? Array> : T[P] extends ReadonlyArray ? ReadonlyArray> : DeepPartial | T[P]; }; export type Constructor = { new (...args: any[]): T; }; export type IntersectionTypeWithArrays = (Omit & Omit & { [key in arrayKeys]: ((T1[key] extends Array ? U1 : never) & (T2[key] extends Array ? U2 : never))[]; }); export type ThenArg = T extends PromiseLike ? U : T; export type ParametersFromSecond any> = T extends (x: any, ...args: infer P) => any ? P : never; export type TCallback = (error: Error, result?: TResult) => void; export type TFnWithCallback = (...args: [...TArgs, TCallback]) => void; export type DataLike = T extends bigint ? bigint | number | TEth.Hex : (T extends number ? number | TEth.Hex : (T extends {} ? { [P in keyof T]?: DataLike; } : (T extends [] ? DataLike[] : T))); export type TOverrideReturns = { [P in keyof TObject]: TObject[P] extends (...args: infer TParams) => any ? (...args: TParams) => TReturn : never; }; export type TTxWriteMethodKeys = { [P in keyof T]: T[P] extends ((sender: IAccount, ...args: any[]) => (Promise)) ? P : never; }[keyof T]; export {};