import { IAirGapTransaction } from '../../../interfaces/IAirGapTransaction';
import { CosmosCoinJSON } from '../CosmosCoin';
import { CosmosProtocol } from '../CosmosProtocol';
import { JSONConvertible, RPCConvertible } from '../CosmosTransaction';
export interface CosmosMessageJSON {
    type: CosmosMessageTypeIndex;
    amount: CosmosCoinJSON[];
    fromAddress: string;
    toAddress: string;
}
export declare enum CosmosMessageTypeIndex {
    SEND = 0,
    DELEGATE = 1,
    UNDELEGATE = 2,
    WITHDRAW_DELEGATION_REWARD = 3
}
export declare class CosmosMessageType {
    static Send: CosmosMessageType;
    static Delegate: CosmosMessageType;
    static Undelegate: CosmosMessageType;
    static WithdrawDelegationReward: CosmosMessageType;
    readonly index: CosmosMessageTypeIndex;
    readonly value: string;
    constructor(index: CosmosMessageTypeIndex);
}
export interface CosmosMessage extends JSONConvertible, RPCConvertible {
    type: CosmosMessageType;
    toAirGapTransaction(protocol: CosmosProtocol, fee: string): IAirGapTransaction;
    toJSON(): CosmosMessageJSON;
}
