import type { SignerOrProvider } from '@colony/core'; import { ClientType, TokenClientType } from '../constants.js'; import { type MetaTxToken } from '../contracts/index.js'; import { type TokenERC20, type TokenERC2612 } from '../contracts/static/index.js'; /** A ColonyToken has special abilities that go beyond the capabilities of an ERC20 token */ export interface ColonyTokenClient extends MetaTxToken { clientType: ClientType.TokenClient; tokenClientType: TokenClientType.Colony; } /** A standard ERC20 token */ export interface Erc20TokenClient extends TokenERC20 { clientType: ClientType.TokenClient; tokenClientType: TokenClientType.Erc20; } export interface Erc2612TokenClient extends TokenERC2612 { clientType: ClientType.TokenClient; tokenClientType: TokenClientType.Erc2612; } export type TokenClient = ColonyTokenClient | Erc20TokenClient | Erc2612TokenClient; declare const getTokenClient: (address: string, signerOrProvider: SignerOrProvider) => Promise; export default getTokenClient;