import { BigNumberish, ethers } from 'ethers'; import { Address, EthSignerType, PubKeyHash, Transfer, Withdraw, ForcedExit, ChangePubKey, MintNFT, WithdrawNFT, ChangePubKeyOnchain, ChangePubKeyECDSA, ChangePubKeyCREATE2, Create2Data, Swap, Order } from './types'; export declare class Signer { #private; private constructor(); pubKeyHash(): Promise; signMintNFT(mintNft: { creatorId: number; creatorAddress: Address; recipient: Address; contentHash: string; feeTokenId: number; fee: BigNumberish; nonce: number; }): Promise; signWithdrawNFT(withdrawNft: { accountId: number; from: Address; to: Address; tokenId: number; feeTokenId: number; fee: BigNumberish; nonce: number; validFrom: number; validUntil: number; }): Promise; /** * @deprecated `Signer.*SignBytes` methods will be removed in future. Use `utils.serializeTx` instead. */ transferSignBytes(transfer: { accountId: number; from: Address; to: Address; tokenId: number; amount: BigNumberish; fee: BigNumberish; nonce: number; validFrom: number; validUntil: number; }): Uint8Array; signSyncOrder(order: Order): Promise; signSyncSwap(swap: { orders: [Order, Order]; amounts: [BigNumberish, BigNumberish]; submitterId: number; submitterAddress: Address; nonce: number; feeToken: number; fee: BigNumberish; }): Promise; signSyncTransfer(transfer: { accountId: number; from: Address; to: Address; tokenId: number; amount: BigNumberish; fee: BigNumberish; nonce: number; validFrom: number; validUntil: number; }): Promise; /** * @deprecated `Signer.*SignBytes` methods will be removed in future. Use `utils.serializeTx` instead. */ withdrawSignBytes(withdraw: { accountId: number; from: Address; ethAddress: string; tokenId: number; amount: BigNumberish; fee: BigNumberish; nonce: number; validFrom: number; validUntil: number; }): Uint8Array; signSyncWithdraw(withdraw: { accountId: number; from: Address; ethAddress: string; tokenId: number; amount: BigNumberish; fee: BigNumberish; nonce: number; validFrom: number; validUntil: number; }): Promise; /** * @deprecated `Signer.*SignBytes` methods will be removed in future. Use `utils.serializeTx` instead. */ forcedExitSignBytes(forcedExit: { initiatorAccountId: number; target: Address; tokenId: number; fee: BigNumberish; nonce: number; validFrom: number; validUntil: number; }): Uint8Array; signSyncForcedExit(forcedExit: { initiatorAccountId: number; target: Address; tokenId: number; fee: BigNumberish; nonce: number; validFrom: number; validUntil: number; }): Promise; /** * @deprecated `Signer.*SignBytes` methods will be removed in future. Use `utils.serializeTx` instead. */ changePubKeySignBytes(changePubKey: { accountId: number; account: Address; newPkHash: PubKeyHash; feeTokenId: number; fee: BigNumberish; nonce: number; validFrom: number; validUntil: number; }): Uint8Array; signSyncChangePubKey(changePubKey: { accountId: number; account: Address; newPkHash: PubKeyHash; feeTokenId: number; fee: BigNumberish; nonce: number; ethAuthData?: ChangePubKeyOnchain | ChangePubKeyECDSA | ChangePubKeyCREATE2; ethSignature?: string; validFrom: number; validUntil: number; }): Promise; static fromPrivateKey(pk: Uint8Array): Signer; static fromSeed(seed: Uint8Array): Promise; static fromETHSignature(ethSigner: ethers.Signer): Promise<{ signer: Signer; ethSignatureType: EthSignerType; }>; } export declare class Create2WalletSigner extends ethers.Signer { zkSyncPubkeyHash: string; create2WalletData: Create2Data; readonly address: string; readonly salt: string; constructor(zkSyncPubkeyHash: string, create2WalletData: Create2Data, provider?: ethers.providers.Provider); getAddress(): Promise; /** * This signer can't sign messages but we return zeroed signature bytes to comply with ethers API. */ signMessage(_message: any): Promise; signTransaction(_message: any): Promise; connect(provider: ethers.providers.Provider): ethers.Signer; } export declare class No2FAWalletSigner extends ethers.Signer { readonly address: string; constructor(address: string, provider?: ethers.providers.Provider); getAddress(): Promise; /** * This signer can't sign messages but we return zeroed signature bytes to comply with ethers API. */ signMessage(_message: any): Promise; signTransaction(_message: any): Promise; connect(provider: ethers.providers.Provider): ethers.Signer; } export declare function unableToSign(signer: ethers.Signer): boolean;