import { Call, Contract } from 'starknet'; import { Address, Domain, LazyAsync, Numberish } from '@hyperlane-xyz/utils'; import { BaseStarknetAdapter } from '../../app/MultiProtocolApp.js'; import type { MultiProviderAdapter } from '../../providers/MultiProviderAdapter.js'; import { ChainName } from '../../types.js'; import { TokenMetadata } from '../types.js'; import { IHypTokenAdapter, ITokenAdapter, InterchainGasQuote, QuoteTransferRemoteParams, TransferParams, TransferRemoteParams } from './ITokenAdapter.js'; export declare class StarknetTokenAdapter extends BaseStarknetAdapter implements ITokenAdapter { readonly chainName: ChainName; readonly multiProvider: MultiProviderAdapter; readonly addresses: { tokenAddress: Address; }; private readonly tokenContract; constructor(chainName: ChainName, multiProvider: MultiProviderAdapter, addresses: { tokenAddress: Address; }); getContractInstance(): Promise; private createContractInstance; getBalance(address: Address): Promise; getMetadata(_isNft?: boolean): Promise; getMinimumTransferAmount(_recipient: Address): Promise; isApproveRequired(owner: Address, spender: Address, weiAmountOrId: Numberish): Promise; isRevokeApprovalRequired(_owner: Address, _spender: Address): Promise; populateApproveTx({ weiAmountOrId, recipient, }: TransferParams): Promise; populateTransferTx({ weiAmountOrId, recipient, }: TransferParams): Promise; getTotalSupply(): Promise; } declare class BaseStarknetHypTokenAdapter extends BaseStarknetAdapter implements ITokenAdapter { readonly chainName: ChainName; readonly multiProvider: MultiProviderAdapter; readonly addresses: { warpRouter: Address; }; readonly contract: Contract; constructor(chainName: ChainName, multiProvider: MultiProviderAdapter, addresses: { warpRouter: Address; }); getBalance(address: Address): Promise; getMetadata(_isNft?: boolean): Promise; getMinimumTransferAmount(_recipient: Address): Promise; isApproveRequired(owner: Address, spender: Address, weiAmountOrId: Numberish): Promise; isRevokeApprovalRequired(_owner: Address, _spender: Address): Promise; populateApproveTx({ weiAmountOrId, recipient, }: TransferParams): Promise; populateTransferTx({ weiAmountOrId, recipient, }: TransferParams): Promise; getTotalSupply(): Promise; } export declare class StarknetHypSyntheticAdapter extends BaseStarknetHypTokenAdapter implements IHypTokenAdapter { readonly chainName: ChainName; readonly multiProvider: MultiProviderAdapter; readonly addresses: { warpRouter: Address; }; constructor(chainName: ChainName, multiProvider: MultiProviderAdapter, addresses: { warpRouter: Address; }); isApproveRequired(_owner: Address, _spender: Address, _weiAmountOrId: Numberish): Promise; isRevokeApprovalRequired(_owner: Address, _spender: Address): Promise; getDomains(): Promise; getRouterAddress(domain: Domain): Promise; getAllRouters(): Promise>; getBridgedSupply(): Promise; quoteTransferRemoteGas({ destination, }: QuoteTransferRemoteParams): Promise; populateTransferRemoteTx({ weiAmountOrId, destination, recipient, interchainGas, }: TransferRemoteParams): Promise; } export declare class StarknetHypCollateralAdapter extends StarknetHypSyntheticAdapter { readonly collateralContract: Contract; protected readonly wrappedTokenAddress: LazyAsync; constructor(chainName: ChainName, multiProvider: MultiProviderAdapter, addresses: { warpRouter: Address; }); protected getWrappedTokenAddress(): Promise
; protected loadWrappedTokenAddress(): Promise
; protected getWrappedTokenAdapter(): Promise; getBridgedSupply(): Promise; getMetadata(isNft?: boolean): Promise; isApproveRequired(owner: Address, spender: Address, weiAmountOrId: Numberish): Promise; populateApproveTx(params: TransferParams): Promise; populateTransferTx(params: TransferParams): Promise; } export declare class StarknetHypNativeAdapter extends StarknetHypSyntheticAdapter { readonly collateralContract: Contract; readonly nativeContract: Contract; constructor(chainName: ChainName, multiProvider: MultiProviderAdapter, addresses: { warpRouter: Address; }); getBalance(address: Address): Promise; isApproveRequired(owner: Address, spender: Address, weiAmountOrId: Numberish): Promise; populateApproveTx({ weiAmountOrId, recipient, }: TransferParams): Promise; populateTransferRemoteTx({ weiAmountOrId, destination, recipient, interchainGas, }: TransferRemoteParams): Promise; } export declare class StarknetHypFeeAdapter extends StarknetHypSyntheticAdapter { readonly collateralContract: Contract; readonly feeTokenContract: Contract; constructor(chainName: ChainName, multiProvider: MultiProviderAdapter, addresses: { warpRouter: Address; }); getBalance(address: Address): Promise; isApproveRequired(owner: Address, spender: Address, weiAmountOrId: Numberish): Promise; populateApproveTx({ weiAmountOrId, recipient, }: TransferParams): Promise; populateTransferRemoteTx({ weiAmountOrId, destination, recipient, interchainGas, }: TransferRemoteParams): Promise; } export {}; //# sourceMappingURL=StarknetTokenAdapter.d.ts.map