import _m0 from "protobufjs/minimal";
import { Confirmation } from "./confirmation";
import { Operation } from "./operation";
import { Params } from "./params";
export declare const protobufPackage = "rarifyprotocol.rarimocore.rarimocore";
/** GenesisState defines the rarimocore module's genesis state. */
export interface GenesisState {
    params: Params | undefined;
    operationList: Operation[];
    /** this line is used by starport scaffolding # genesis/proto/state */
    confirmationList: Confirmation[];
}
export declare const GenesisState: {
    encode(message: GenesisState, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): GenesisState;
    fromJSON(object: any): GenesisState;
    toJSON(message: GenesisState): unknown;
    fromPartial<I extends {
        params?: {
            keyECDSA?: string;
        };
        operationList?: {
            index?: string;
            operationType?: import("./operation").opType;
            details?: {
                typeUrl?: string;
                value?: Uint8Array;
            };
            signed?: boolean;
            creator?: string;
            timestamp?: number;
        }[];
        confirmationList?: {
            root?: string;
            indexes?: string[];
            signatureECDSA?: string;
            creator?: string;
        }[];
    } & {
        params?: {
            keyECDSA?: string;
        } & {
            keyECDSA?: string;
        } & { [K in Exclude<keyof I["params"], "keyECDSA">]: never; };
        operationList?: {
            index?: string;
            operationType?: import("./operation").opType;
            details?: {
                typeUrl?: string;
                value?: Uint8Array;
            };
            signed?: boolean;
            creator?: string;
            timestamp?: number;
        }[] & ({
            index?: string;
            operationType?: import("./operation").opType;
            details?: {
                typeUrl?: string;
                value?: Uint8Array;
            };
            signed?: boolean;
            creator?: string;
            timestamp?: number;
        } & {
            index?: string;
            operationType?: import("./operation").opType;
            details?: {
                typeUrl?: string;
                value?: Uint8Array;
            } & {
                typeUrl?: string;
                value?: Uint8Array;
            } & { [K_1 in Exclude<keyof I["operationList"][number]["details"], keyof import("../google/protobuf/any").Any>]: never; };
            signed?: boolean;
            creator?: string;
            timestamp?: number;
        } & { [K_2 in Exclude<keyof I["operationList"][number], keyof Operation>]: never; })[] & { [K_3 in Exclude<keyof I["operationList"], keyof {
            index?: string;
            operationType?: import("./operation").opType;
            details?: {
                typeUrl?: string;
                value?: Uint8Array;
            };
            signed?: boolean;
            creator?: string;
            timestamp?: number;
        }[]>]: never; };
        confirmationList?: {
            root?: string;
            indexes?: string[];
            signatureECDSA?: string;
            creator?: string;
        }[] & ({
            root?: string;
            indexes?: string[];
            signatureECDSA?: string;
            creator?: string;
        } & {
            root?: string;
            indexes?: string[] & string[] & { [K_4 in Exclude<keyof I["confirmationList"][number]["indexes"], keyof string[]>]: never; };
            signatureECDSA?: string;
            creator?: string;
        } & { [K_5 in Exclude<keyof I["confirmationList"][number], keyof Confirmation>]: never; })[] & { [K_6 in Exclude<keyof I["confirmationList"], keyof {
            root?: string;
            indexes?: string[];
            signatureECDSA?: string;
            creator?: string;
        }[]>]: never; };
    } & { [K_7 in Exclude<keyof I, keyof GenesisState>]: never; }>(object: I): GenesisState;
};
declare type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
export declare 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>;
declare type KeysOfUnion<T> = T extends T ? keyof T : never;
export declare type Exact<P, I extends P> = P extends Builtin ? P : P & {
    [K in keyof P]: Exact<P[K], I[K]>;
} & {
    [K in Exclude<keyof I, KeysOfUnion<P>>]: never;
};
export {};
