import { TokenConfig, Chain } from "./types";
export { TokenConfig, Chain } from "./types";
import { ethers } from "ethers";
type Role = "MINTER_ROLE" | "BURNER_ROLE" | "PAUSER_ROLE" | "UPGRADER_ROLE";
declare class Token {
    private getWallet;
    private getProvider;
    private getTokenContract;
    deployToken(config: TokenConfig, deployerPrivateKey?: string, walletInstance?: ethers.Wallet): Promise<{
        transactionHash: any;
        tokenAddress: any;
    }>;
    grantRole(chain: Chain, tokenAddress: string, role: Role, toAddress: string, deployerPrivateKey?: string, walletInstance?: ethers.Wallet): Promise<any>;
    revokeRole(chain: Chain, tokenAddress: string, role: Role, fromAddress: string, deployerPrivateKey?: string, walletInstance?: ethers.Wallet): Promise<any>;
    hasRole(chain: Chain, tokenAddress: string, role: Role, address: string): Promise<boolean>;
    setTransferable(chain: Chain, tokenAddress: string, isTransferable: boolean, deployerPrivateKey?: string, walletInstance?: ethers.Wallet): Promise<any>;
    pause(chain: Chain, tokenAddress: string, deployerPrivateKey?: string, walletInstance?: ethers.Wallet): Promise<any>;
    unpause(chain: Chain, tokenAddress: string, deployerPrivateKey?: string, walletInstance?: ethers.Wallet): Promise<any>;
    upgradeTo(chain: Chain, tokenAddress: string, newImplementationAddress: string, deployerPrivateKey?: string, walletInstance?: ethers.Wallet): Promise<any>;
}
export default Token;
//# sourceMappingURL=index.d.ts.map