import { BaseAccount, BaseAccountAmino } from "../../../../cosmos/auth/v1beta1/auth";
import { BinaryReader, BinaryWriter } from "../../../../binary";
import { DeepPartial } from "../../../../helpers";
/**
 * An InterchainAccount is defined as a BaseAccount & the address of the account owner on the controller chain
 * @name InterchainAccount
 * @package ibc.applications.interchain_accounts.v1
 * @see proto type: ibc.applications.interchain_accounts.v1.InterchainAccount
 */
export interface InterchainAccount {
    $typeUrl?: "/ibc.applications.interchain_accounts.v1.InterchainAccount";
    baseAccount?: BaseAccount;
    accountOwner: string;
}
export interface InterchainAccountProtoMsg {
    typeUrl: "/ibc.applications.interchain_accounts.v1.InterchainAccount";
    value: Uint8Array;
}
/**
 * An InterchainAccount is defined as a BaseAccount & the address of the account owner on the controller chain
 * @name InterchainAccountAmino
 * @package ibc.applications.interchain_accounts.v1
 * @see proto type: ibc.applications.interchain_accounts.v1.InterchainAccount
 */
export interface InterchainAccountAmino {
    base_account?: BaseAccountAmino;
    account_owner: string;
}
export interface InterchainAccountAminoMsg {
    type: "cosmos-sdk/InterchainAccount";
    value: InterchainAccountAmino;
}
/**
 * An InterchainAccount is defined as a BaseAccount & the address of the account owner on the controller chain
 * @name InterchainAccount
 * @package ibc.applications.interchain_accounts.v1
 * @see proto type: ibc.applications.interchain_accounts.v1.InterchainAccount
 */
export declare const InterchainAccount: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is InterchainAccount;
    isAmino(o: any): o is InterchainAccountAmino;
    encode(message: InterchainAccount, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): InterchainAccount;
    fromPartial(object: DeepPartial<InterchainAccount>): InterchainAccount;
    fromAmino(object: InterchainAccountAmino): InterchainAccount;
    toAmino(message: InterchainAccount): InterchainAccountAmino;
    fromAminoMsg(object: InterchainAccountAminoMsg): InterchainAccount;
    toAminoMsg(message: InterchainAccount): InterchainAccountAminoMsg;
    fromProtoMsg(message: InterchainAccountProtoMsg): InterchainAccount;
    toProto(message: InterchainAccount): Uint8Array;
    toProtoMsg(message: InterchainAccount): InterchainAccountProtoMsg;
    registerTypeUrl(): void;
};
