///
import { ChainClientInterface, ChainType, GatewayToken, ProveWalletOwnershipResponse, ChainEvent, DID } from '@civic/gateway-client-core';
import { Network, TransactionRequest, TransactionResponse } from 'ethers';
import { EthereumGatewayWallet } from './types';
export type EthereumChainImplementationInputs = {
wallet: EthereumGatewayWallet;
network: Network;
owner: string;
gatekeeperNetwork: string;
slotId: string;
stage: string;
gatekeeperSendsTransaction: boolean;
handleTransaction?: (transaction: TransactionRequest) => Promise;
chainPollingIntervalMs?: number;
};
export declare class EthereumChainImplementation implements ChainClientInterface {
private inputs;
gknSlotId: bigint;
evmGatekeeperNetwork: {
slotId: bigint;
address: string;
};
private gatewayToken;
private listeners;
pendingTransaction: string | undefined;
constructor(inputs: EthereumChainImplementationInputs);
findGatewayToken(): Promise;
proveWalletOwnership(message?: string | undefined): Promise;
signMessage(message: Uint8Array): Promise;
handleTransaction(partiallySignedTx: string, frontendPollingTimeoutSeconds?: number): Promise;
ownerDids(): Promise;
chainDetails: {
chainType: ChainType;
chainNetwork: string;
};
on(event: ChainEvent, tokenDidChange: (GatewayToken: GatewayToken) => void): this;
getListenerForOwner(inOwner: string, tokenDidChange: (GatewayToken: GatewayToken) => void): NodeJS.Timer;
removeOnGatewayTokenChangeListener(listenerId: number): void;
onDestroy(): Promise;
}