import { Any, AnyAmino } from "../../../../google/protobuf/any";
import { BIP44Params, BIP44ParamsAmino } from "../../hd/v1/hd";
import { BinaryReader, BinaryWriter } from "../../../../binary";
import { DeepPartial } from "../../../../helpers";
/**
 * Record is used for representing a key in the keyring.
 * @name Record
 * @package cosmos.crypto.keyring.v1
 * @see proto type: cosmos.crypto.keyring.v1.Record
 */
export interface Record {
    /**
     * name represents a name of Record
     */
    name: string;
    /**
     * pub_key represents a public key in any format
     */
    pubKey?: Any;
    /**
     * local stores the private key locally.
     */
    local?: Record_Local;
    /**
     * ledger stores the information about a Ledger key.
     */
    ledger?: Record_Ledger;
    /**
     * Multi does not store any other information.
     */
    multi?: Record_Multi;
    /**
     * Offline does not store any other information.
     */
    offline?: Record_Offline;
}
export interface RecordProtoMsg {
    typeUrl: "/cosmos.crypto.keyring.v1.Record";
    value: Uint8Array;
}
/**
 * Record is used for representing a key in the keyring.
 * @name RecordAmino
 * @package cosmos.crypto.keyring.v1
 * @see proto type: cosmos.crypto.keyring.v1.Record
 */
export interface RecordAmino {
    /**
     * name represents a name of Record
     */
    name: string;
    /**
     * pub_key represents a public key in any format
     */
    pub_key?: AnyAmino;
    /**
     * local stores the private key locally.
     */
    local?: Record_LocalAmino;
    /**
     * ledger stores the information about a Ledger key.
     */
    ledger?: Record_LedgerAmino;
    /**
     * Multi does not store any other information.
     */
    multi?: Record_MultiAmino;
    /**
     * Offline does not store any other information.
     */
    offline?: Record_OfflineAmino;
}
export interface RecordAminoMsg {
    type: "cosmos-sdk/Record";
    value: RecordAmino;
}
/**
 * Item is a keyring item stored in a keyring backend.
 * Local item
 * @name Record_Local
 * @package cosmos.crypto.keyring.v1
 * @see proto type: cosmos.crypto.keyring.v1.Local
 */
export interface Record_Local {
    privKey?: Any;
}
export interface Record_LocalProtoMsg {
    typeUrl: "/cosmos.crypto.keyring.v1.Local";
    value: Uint8Array;
}
/**
 * Item is a keyring item stored in a keyring backend.
 * Local item
 * @name Record_LocalAmino
 * @package cosmos.crypto.keyring.v1
 * @see proto type: cosmos.crypto.keyring.v1.Record_Local
 */
export interface Record_LocalAmino {
    priv_key?: AnyAmino;
}
export interface Record_LocalAminoMsg {
    type: "cosmos-sdk/Local";
    value: Record_LocalAmino;
}
/**
 * Ledger item
 * @name Record_Ledger
 * @package cosmos.crypto.keyring.v1
 * @see proto type: cosmos.crypto.keyring.v1.Ledger
 */
export interface Record_Ledger {
    path?: BIP44Params;
}
export interface Record_LedgerProtoMsg {
    typeUrl: "/cosmos.crypto.keyring.v1.Ledger";
    value: Uint8Array;
}
/**
 * Ledger item
 * @name Record_LedgerAmino
 * @package cosmos.crypto.keyring.v1
 * @see proto type: cosmos.crypto.keyring.v1.Record_Ledger
 */
export interface Record_LedgerAmino {
    path?: BIP44ParamsAmino;
}
export interface Record_LedgerAminoMsg {
    type: "cosmos-sdk/Ledger";
    value: Record_LedgerAmino;
}
/**
 * Multi item
 * @name Record_Multi
 * @package cosmos.crypto.keyring.v1
 * @see proto type: cosmos.crypto.keyring.v1.Multi
 */
export interface Record_Multi {
}
export interface Record_MultiProtoMsg {
    typeUrl: "/cosmos.crypto.keyring.v1.Multi";
    value: Uint8Array;
}
/**
 * Multi item
 * @name Record_MultiAmino
 * @package cosmos.crypto.keyring.v1
 * @see proto type: cosmos.crypto.keyring.v1.Record_Multi
 */
export interface Record_MultiAmino {
}
export interface Record_MultiAminoMsg {
    type: "cosmos-sdk/Multi";
    value: Record_MultiAmino;
}
/**
 * Offline item
 * @name Record_Offline
 * @package cosmos.crypto.keyring.v1
 * @see proto type: cosmos.crypto.keyring.v1.Offline
 */
export interface Record_Offline {
}
export interface Record_OfflineProtoMsg {
    typeUrl: "/cosmos.crypto.keyring.v1.Offline";
    value: Uint8Array;
}
/**
 * Offline item
 * @name Record_OfflineAmino
 * @package cosmos.crypto.keyring.v1
 * @see proto type: cosmos.crypto.keyring.v1.Record_Offline
 */
export interface Record_OfflineAmino {
}
export interface Record_OfflineAminoMsg {
    type: "cosmos-sdk/Offline";
    value: Record_OfflineAmino;
}
/**
 * Record is used for representing a key in the keyring.
 * @name Record
 * @package cosmos.crypto.keyring.v1
 * @see proto type: cosmos.crypto.keyring.v1.Record
 */
export declare const Record: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is Record;
    isAmino(o: any): o is RecordAmino;
    encode(message: Record, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): Record;
    fromPartial(object: DeepPartial<Record>): Record;
    fromAmino(object: RecordAmino): Record;
    toAmino(message: Record): RecordAmino;
    fromAminoMsg(object: RecordAminoMsg): Record;
    toAminoMsg(message: Record): RecordAminoMsg;
    fromProtoMsg(message: RecordProtoMsg): Record;
    toProto(message: Record): Uint8Array;
    toProtoMsg(message: Record): RecordProtoMsg;
    registerTypeUrl(): void;
};
/**
 * Item is a keyring item stored in a keyring backend.
 * Local item
 * @name Record_Local
 * @package cosmos.crypto.keyring.v1
 * @see proto type: cosmos.crypto.keyring.v1.Local
 */
export declare const Record_Local: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is Record_Local;
    isAmino(o: any): o is Record_LocalAmino;
    encode(message: Record_Local, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): Record_Local;
    fromPartial(object: DeepPartial<Record_Local>): Record_Local;
    fromAmino(object: Record_LocalAmino): Record_Local;
    toAmino(message: Record_Local): Record_LocalAmino;
    fromAminoMsg(object: Record_LocalAminoMsg): Record_Local;
    toAminoMsg(message: Record_Local): Record_LocalAminoMsg;
    fromProtoMsg(message: Record_LocalProtoMsg): Record_Local;
    toProto(message: Record_Local): Uint8Array;
    toProtoMsg(message: Record_Local): Record_LocalProtoMsg;
    registerTypeUrl(): void;
};
/**
 * Ledger item
 * @name Record_Ledger
 * @package cosmos.crypto.keyring.v1
 * @see proto type: cosmos.crypto.keyring.v1.Ledger
 */
export declare const Record_Ledger: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is Record_Ledger;
    isAmino(o: any): o is Record_LedgerAmino;
    encode(message: Record_Ledger, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): Record_Ledger;
    fromPartial(object: DeepPartial<Record_Ledger>): Record_Ledger;
    fromAmino(object: Record_LedgerAmino): Record_Ledger;
    toAmino(message: Record_Ledger): Record_LedgerAmino;
    fromAminoMsg(object: Record_LedgerAminoMsg): Record_Ledger;
    toAminoMsg(message: Record_Ledger): Record_LedgerAminoMsg;
    fromProtoMsg(message: Record_LedgerProtoMsg): Record_Ledger;
    toProto(message: Record_Ledger): Uint8Array;
    toProtoMsg(message: Record_Ledger): Record_LedgerProtoMsg;
    registerTypeUrl(): void;
};
/**
 * Multi item
 * @name Record_Multi
 * @package cosmos.crypto.keyring.v1
 * @see proto type: cosmos.crypto.keyring.v1.Multi
 */
export declare const Record_Multi: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is Record_Multi;
    isAmino(o: any): o is Record_MultiAmino;
    encode(_: Record_Multi, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): Record_Multi;
    fromPartial(_: DeepPartial<Record_Multi>): Record_Multi;
    fromAmino(_: Record_MultiAmino): Record_Multi;
    toAmino(_: Record_Multi): Record_MultiAmino;
    fromAminoMsg(object: Record_MultiAminoMsg): Record_Multi;
    toAminoMsg(message: Record_Multi): Record_MultiAminoMsg;
    fromProtoMsg(message: Record_MultiProtoMsg): Record_Multi;
    toProto(message: Record_Multi): Uint8Array;
    toProtoMsg(message: Record_Multi): Record_MultiProtoMsg;
    registerTypeUrl(): void;
};
/**
 * Offline item
 * @name Record_Offline
 * @package cosmos.crypto.keyring.v1
 * @see proto type: cosmos.crypto.keyring.v1.Offline
 */
export declare const Record_Offline: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is Record_Offline;
    isAmino(o: any): o is Record_OfflineAmino;
    encode(_: Record_Offline, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): Record_Offline;
    fromPartial(_: DeepPartial<Record_Offline>): Record_Offline;
    fromAmino(_: Record_OfflineAmino): Record_Offline;
    toAmino(_: Record_Offline): Record_OfflineAmino;
    fromAminoMsg(object: Record_OfflineAminoMsg): Record_Offline;
    toAminoMsg(message: Record_Offline): Record_OfflineAminoMsg;
    fromProtoMsg(message: Record_OfflineProtoMsg): Record_Offline;
    toProto(message: Record_Offline): Uint8Array;
    toProtoMsg(message: Record_Offline): Record_OfflineProtoMsg;
    registerTypeUrl(): void;
};
