import { BinaryReader, BinaryWriter } from "../../../../binary";
import { DeepPartial } from "../../../../helpers";
/**
 * GenesisState defines 08-wasm's keeper genesis state
 * @name GenesisState
 * @package ibc.lightclients.wasm.v1
 * @see proto type: ibc.lightclients.wasm.v1.GenesisState
 */
export interface GenesisState {
    /**
     * uploaded light client wasm contracts
     */
    contracts: Contract[];
}
export interface GenesisStateProtoMsg {
    typeUrl: "/ibc.lightclients.wasm.v1.GenesisState";
    value: Uint8Array;
}
/**
 * GenesisState defines 08-wasm's keeper genesis state
 * @name GenesisStateAmino
 * @package ibc.lightclients.wasm.v1
 * @see proto type: ibc.lightclients.wasm.v1.GenesisState
 */
export interface GenesisStateAmino {
    /**
     * uploaded light client wasm contracts
     */
    contracts: ContractAmino[];
}
export interface GenesisStateAminoMsg {
    type: "cosmos-sdk/GenesisState";
    value: GenesisStateAmino;
}
/**
 * Contract stores contract code
 * @name Contract
 * @package ibc.lightclients.wasm.v1
 * @see proto type: ibc.lightclients.wasm.v1.Contract
 */
export interface Contract {
    /**
     * contract byte code
     */
    codeBytes: Uint8Array;
}
export interface ContractProtoMsg {
    typeUrl: "/ibc.lightclients.wasm.v1.Contract";
    value: Uint8Array;
}
/**
 * Contract stores contract code
 * @name ContractAmino
 * @package ibc.lightclients.wasm.v1
 * @see proto type: ibc.lightclients.wasm.v1.Contract
 */
export interface ContractAmino {
    /**
     * contract byte code
     */
    code_bytes: string;
}
export interface ContractAminoMsg {
    type: "cosmos-sdk/Contract";
    value: ContractAmino;
}
/**
 * GenesisState defines 08-wasm's keeper genesis state
 * @name GenesisState
 * @package ibc.lightclients.wasm.v1
 * @see proto type: ibc.lightclients.wasm.v1.GenesisState
 */
export declare const GenesisState: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is GenesisState;
    isAmino(o: any): o is GenesisStateAmino;
    encode(message: GenesisState, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): GenesisState;
    fromPartial(object: DeepPartial<GenesisState>): GenesisState;
    fromAmino(object: GenesisStateAmino): GenesisState;
    toAmino(message: GenesisState): GenesisStateAmino;
    fromAminoMsg(object: GenesisStateAminoMsg): GenesisState;
    toAminoMsg(message: GenesisState): GenesisStateAminoMsg;
    fromProtoMsg(message: GenesisStateProtoMsg): GenesisState;
    toProto(message: GenesisState): Uint8Array;
    toProtoMsg(message: GenesisState): GenesisStateProtoMsg;
    registerTypeUrl(): void;
};
/**
 * Contract stores contract code
 * @name Contract
 * @package ibc.lightclients.wasm.v1
 * @see proto type: ibc.lightclients.wasm.v1.Contract
 */
export declare const Contract: {
    typeUrl: string;
    aminoType: string;
    is(o: any): o is Contract;
    isAmino(o: any): o is ContractAmino;
    encode(message: Contract, writer?: BinaryWriter): BinaryWriter;
    decode(input: BinaryReader | Uint8Array, length?: number): Contract;
    fromPartial(object: DeepPartial<Contract>): Contract;
    fromAmino(object: ContractAmino): Contract;
    toAmino(message: Contract): ContractAmino;
    fromAminoMsg(object: ContractAminoMsg): Contract;
    toAminoMsg(message: Contract): ContractAminoMsg;
    fromProtoMsg(message: ContractProtoMsg): Contract;
    toProto(message: Contract): Uint8Array;
    toProtoMsg(message: Contract): ContractProtoMsg;
    registerTypeUrl(): void;
};
