import { Reader, Writer } from "protobufjs/minimal";
export declare const protobufPackage = "token";
export interface MsgCreateToken {
    owner: string;
    name: string;
    symbol: string;
    tokenURI: string;
    totalSupply: number;
    decimal: number;
    mintable: boolean;
    burnable: boolean;
}
export interface MsgCreateTokenResponse {
}
export interface MsgMint {
    owner: string;
    tokenID: string;
    amount: number;
    toAddress: string;
}
export interface MsgMintResponse {
}
export interface MsgBurn {
    owner: string;
    tokenID: string;
    amount: number;
}
export interface MsgBurnResponse {
}
export interface MsgUpdateTokenURI {
    owner: string;
    tokenID: string;
    tokenURI: string;
}
export interface MsgUpdateTokenURIResponse {
}
export declare const MsgCreateToken: {
    encode(message: MsgCreateToken, writer?: Writer): Writer;
    decode(input: Reader | Uint8Array, length?: number): MsgCreateToken;
    fromJSON(object: any): MsgCreateToken;
    toJSON(message: MsgCreateToken): unknown;
    fromPartial(object: DeepPartial<MsgCreateToken>): MsgCreateToken;
};
export declare const MsgCreateTokenResponse: {
    encode(_: MsgCreateTokenResponse, writer?: Writer): Writer;
    decode(input: Reader | Uint8Array, length?: number): MsgCreateTokenResponse;
    fromJSON(_: any): MsgCreateTokenResponse;
    toJSON(_: MsgCreateTokenResponse): unknown;
    fromPartial(_: DeepPartial<MsgCreateTokenResponse>): MsgCreateTokenResponse;
};
export declare const MsgMint: {
    encode(message: MsgMint, writer?: Writer): Writer;
    decode(input: Reader | Uint8Array, length?: number): MsgMint;
    fromJSON(object: any): MsgMint;
    toJSON(message: MsgMint): unknown;
    fromPartial(object: DeepPartial<MsgMint>): MsgMint;
};
export declare const MsgMintResponse: {
    encode(_: MsgMintResponse, writer?: Writer): Writer;
    decode(input: Reader | Uint8Array, length?: number): MsgMintResponse;
    fromJSON(_: any): MsgMintResponse;
    toJSON(_: MsgMintResponse): unknown;
    fromPartial(_: DeepPartial<MsgMintResponse>): MsgMintResponse;
};
export declare const MsgBurn: {
    encode(message: MsgBurn, writer?: Writer): Writer;
    decode(input: Reader | Uint8Array, length?: number): MsgBurn;
    fromJSON(object: any): MsgBurn;
    toJSON(message: MsgBurn): unknown;
    fromPartial(object: DeepPartial<MsgBurn>): MsgBurn;
};
export declare const MsgBurnResponse: {
    encode(_: MsgBurnResponse, writer?: Writer): Writer;
    decode(input: Reader | Uint8Array, length?: number): MsgBurnResponse;
    fromJSON(_: any): MsgBurnResponse;
    toJSON(_: MsgBurnResponse): unknown;
    fromPartial(_: DeepPartial<MsgBurnResponse>): MsgBurnResponse;
};
export declare const MsgUpdateTokenURI: {
    encode(message: MsgUpdateTokenURI, writer?: Writer): Writer;
    decode(input: Reader | Uint8Array, length?: number): MsgUpdateTokenURI;
    fromJSON(object: any): MsgUpdateTokenURI;
    toJSON(message: MsgUpdateTokenURI): unknown;
    fromPartial(object: DeepPartial<MsgUpdateTokenURI>): MsgUpdateTokenURI;
};
export declare const MsgUpdateTokenURIResponse: {
    encode(_: MsgUpdateTokenURIResponse, writer?: Writer): Writer;
    decode(input: Reader | Uint8Array, length?: number): MsgUpdateTokenURIResponse;
    fromJSON(_: any): MsgUpdateTokenURIResponse;
    toJSON(_: MsgUpdateTokenURIResponse): unknown;
    fromPartial(_: DeepPartial<MsgUpdateTokenURIResponse>): MsgUpdateTokenURIResponse;
};
/** Msg defines the Msg service. */
export interface Msg {
    CreateToken(request: MsgCreateToken): Promise<MsgCreateTokenResponse>;
    Mint(request: MsgMint): Promise<MsgMintResponse>;
    Burn(request: MsgBurn): Promise<MsgBurnResponse>;
    /** this line is used by starport scaffolding # proto/tx/rpc */
    UpdateTokenURI(request: MsgUpdateTokenURI): Promise<MsgUpdateTokenURIResponse>;
}
export declare class MsgClientImpl implements Msg {
    private readonly rpc;
    constructor(rpc: Rpc);
    CreateToken(request: MsgCreateToken): Promise<MsgCreateTokenResponse>;
    Mint(request: MsgMint): Promise<MsgMintResponse>;
    Burn(request: MsgBurn): Promise<MsgBurnResponse>;
    UpdateTokenURI(request: MsgUpdateTokenURI): Promise<MsgUpdateTokenURIResponse>;
}
interface Rpc {
    request(service: string, method: string, data: Uint8Array): Promise<Uint8Array>;
}
type Builtin = Date | Function | Uint8Array | string | number | undefined;
export type DeepPartial<T> = T extends Builtin ? T : T extends Array<infer U> ? Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
export {};
