import { KnownChainId, KnownTokenId } from '../utils/types/knownIds.mjs';
import { SDKNumber, EVMAddress } from './types.mjs';
import { S as SDKGlobalContext } from '../types.internal-8d3OI2Qm.mjs';
import '../utils/BigNumber.mjs';
import 'big.js';
import '../utils/typeHelpers.mjs';
import 'viem';
import '../evmUtils/evmContractAddresses.mjs';

interface TimeLockedAsset {
    id: string;
    chain: KnownChainId.EVMChain;
    token: KnownTokenId.EVMToken;
    amount: SDKNumber;
    releaseTime: Date;
}
interface GetTimeLockedAssetsInput {
    walletAddress: EVMAddress;
    chains: KnownChainId.EVMChain[];
}
interface GetTimeLockedAssetsOutput {
    assets: TimeLockedAsset[];
}
declare function getTimeLockedAssetsFromEVM(ctx: SDKGlobalContext, input: GetTimeLockedAssetsInput): Promise<GetTimeLockedAssetsOutput>;
interface ClaimTimeLockedAssetsInput {
    chain: KnownChainId.EVMChain;
    walletAddress: EVMAddress;
    lockedAssetIds: string[];
    sendTransaction: (tx: {
        from: EVMAddress;
        to: EVMAddress;
        data: Uint8Array;
        recommendedGasLimit: SDKNumber;
    }) => Promise<{
        txHash: string;
    }>;
}
interface ClaimTimeLockedAssetsOutput {
    txHash: string;
}
declare const claimTimeLockedAssetsFromEVM: (ctx: SDKGlobalContext, input: ClaimTimeLockedAssetsInput) => Promise<undefined | ClaimTimeLockedAssetsOutput>;

export { type ClaimTimeLockedAssetsInput, type ClaimTimeLockedAssetsOutput, type GetTimeLockedAssetsInput, type GetTimeLockedAssetsOutput, type TimeLockedAsset, claimTimeLockedAssetsFromEVM, getTimeLockedAssetsFromEVM };
