import { BaseProvider } from '../providers/base'; import { Coin } from '@cryptoandcoffee/akash-jsdk-protobuf'; import { IBCTransferResult } from '../types/results'; export interface Height { revisionNumber: bigint; revisionHeight: bigint; } export interface IBCTransferParams { sourceChannel: string; token: Coin; receiver: string; timeoutHeight?: Height; timeoutTimestamp?: bigint; memo?: string; wallet?: any; } export interface Channel { id: string; portId: string; state: string; ordering: string; counterparty: { portId: string; channelId: string; }; connectionHops: string[]; version: string; } export interface TransferStatus { txHash: string; status: 'pending' | 'success' | 'failed' | 'timeout'; height?: number; timestamp?: string; error?: string; acknowledgement?: string; } export declare class IBCManager { private provider; private readonly DEFAULT_TIMEOUT_OFFSET; constructor(provider: BaseProvider); /** * Initiate an IBC transfer to another chain */ transfer(params: IBCTransferParams): Promise; /** * Get all IBC channels */ getChannels(): Promise; /** * Get details of a specific IBC channel */ getChannel(channelId: string, portId?: string): Promise; /** * Check the status of an IBC transfer by querying transaction details and events */ getTransferStatus(txHash: string): Promise; /** * Get default timeout timestamp (10 minutes from now) */ private getDefaultTimeout; /** * Calculate timeout height based on current height */ calculateTimeoutHeight(blocksInFuture?: number): Promise; /** * Validate an IBC transfer before execution */ validateTransfer(params: IBCTransferParams): Promise<{ valid: boolean; errors: string[]; }>; /** * Get IBC denom trace for a token */ getDenomTrace(denom: string): Promise<{ path: string; baseDenom: string; hash: string; } | null>; } export type { IBCTransferResult }; //# sourceMappingURL=ibc.d.ts.map