import _m0 from "protobufjs/minimal";
import { PageRequest, PageResponse } from "../cosmos/base/query/v1beta1/pagination";
import { Confirmation } from "./confirmation";
import { Operation } from "./operation";
import { Params } from "./params";
export declare const protobufPackage = "rarifyprotocol.rarimocore.rarimocore";
/** QueryParamsRequest is request type for the Query/Params RPC method. */
export interface QueryParamsRequest {
}
/** QueryParamsResponse is response type for the Query/Params RPC method. */
export interface QueryParamsResponse {
    /** params holds all the parameters of this module. */
    params: Params | undefined;
}
export interface QueryGetOperationRequest {
    index: string;
}
export interface QueryGetOperationResponse {
    operation: Operation | undefined;
}
export interface QueryAllOperationRequest {
    pagination: PageRequest | undefined;
}
export interface QueryAllOperationResponse {
    operation: Operation[];
    pagination: PageResponse | undefined;
}
export interface QueryGetConfirmationRequest {
    root: string;
}
export interface QueryGetConfirmationResponse {
    confirmation: Confirmation | undefined;
}
export interface QueryAllConfirmationRequest {
    pagination: PageRequest | undefined;
}
export interface QueryAllConfirmationResponse {
    confirmation: Confirmation[];
    pagination: PageResponse | undefined;
}
export declare const QueryParamsRequest: {
    encode(_: QueryParamsRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsRequest;
    fromJSON(_: any): QueryParamsRequest;
    toJSON(_: QueryParamsRequest): unknown;
    fromPartial<I extends {} & {} & { [K in Exclude<keyof I, never>]: never; }>(_: I): QueryParamsRequest;
};
export declare const QueryParamsResponse: {
    encode(message: QueryParamsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): QueryParamsResponse;
    fromJSON(object: any): QueryParamsResponse;
    toJSON(message: QueryParamsResponse): unknown;
    fromPartial<I extends {
        params?: {
            keyECDSA?: string;
        };
    } & {
        params?: {
            keyECDSA?: string;
        } & {
            keyECDSA?: string;
        } & { [K in Exclude<keyof I["params"], "keyECDSA">]: never; };
    } & { [K_1 in Exclude<keyof I, "params">]: never; }>(object: I): QueryParamsResponse;
};
export declare const QueryGetOperationRequest: {
    encode(message: QueryGetOperationRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): QueryGetOperationRequest;
    fromJSON(object: any): QueryGetOperationRequest;
    toJSON(message: QueryGetOperationRequest): unknown;
    fromPartial<I extends {
        index?: string;
    } & {
        index?: string;
    } & { [K in Exclude<keyof I, "index">]: never; }>(object: I): QueryGetOperationRequest;
};
export declare const QueryGetOperationResponse: {
    encode(message: QueryGetOperationResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): QueryGetOperationResponse;
    fromJSON(object: any): QueryGetOperationResponse;
    toJSON(message: QueryGetOperationResponse): unknown;
    fromPartial<I extends {
        operation?: {
            index?: string;
            operationType?: import("./operation").opType;
            details?: {
                typeUrl?: string;
                value?: Uint8Array;
            };
            signed?: boolean;
            creator?: string;
            timestamp?: number;
        };
    } & {
        operation?: {
            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 in Exclude<keyof I["operation"]["details"], keyof import("../google/protobuf/any").Any>]: never; };
            signed?: boolean;
            creator?: string;
            timestamp?: number;
        } & { [K_1 in Exclude<keyof I["operation"], keyof Operation>]: never; };
    } & { [K_2 in Exclude<keyof I, "operation">]: never; }>(object: I): QueryGetOperationResponse;
};
export declare const QueryAllOperationRequest: {
    encode(message: QueryAllOperationRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllOperationRequest;
    fromJSON(object: any): QueryAllOperationRequest;
    toJSON(message: QueryAllOperationRequest): unknown;
    fromPartial<I extends {
        pagination?: {
            key?: Uint8Array;
            offset?: number;
            limit?: number;
            countTotal?: boolean;
            reverse?: boolean;
        };
    } & {
        pagination?: {
            key?: Uint8Array;
            offset?: number;
            limit?: number;
            countTotal?: boolean;
            reverse?: boolean;
        } & {
            key?: Uint8Array;
            offset?: number;
            limit?: number;
            countTotal?: boolean;
            reverse?: boolean;
        } & { [K in Exclude<keyof I["pagination"], keyof PageRequest>]: never; };
    } & { [K_1 in Exclude<keyof I, "pagination">]: never; }>(object: I): QueryAllOperationRequest;
};
export declare const QueryAllOperationResponse: {
    encode(message: QueryAllOperationResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllOperationResponse;
    fromJSON(object: any): QueryAllOperationResponse;
    toJSON(message: QueryAllOperationResponse): unknown;
    fromPartial<I extends {
        operation?: {
            index?: string;
            operationType?: import("./operation").opType;
            details?: {
                typeUrl?: string;
                value?: Uint8Array;
            };
            signed?: boolean;
            creator?: string;
            timestamp?: number;
        }[];
        pagination?: {
            nextKey?: Uint8Array;
            total?: number;
        };
    } & {
        operation?: {
            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 in Exclude<keyof I["operation"][number]["details"], keyof import("../google/protobuf/any").Any>]: never; };
            signed?: boolean;
            creator?: string;
            timestamp?: number;
        } & { [K_1 in Exclude<keyof I["operation"][number], keyof Operation>]: never; })[] & { [K_2 in Exclude<keyof I["operation"], keyof {
            index?: string;
            operationType?: import("./operation").opType;
            details?: {
                typeUrl?: string;
                value?: Uint8Array;
            };
            signed?: boolean;
            creator?: string;
            timestamp?: number;
        }[]>]: never; };
        pagination?: {
            nextKey?: Uint8Array;
            total?: number;
        } & {
            nextKey?: Uint8Array;
            total?: number;
        } & { [K_3 in Exclude<keyof I["pagination"], keyof PageResponse>]: never; };
    } & { [K_4 in Exclude<keyof I, keyof QueryAllOperationResponse>]: never; }>(object: I): QueryAllOperationResponse;
};
export declare const QueryGetConfirmationRequest: {
    encode(message: QueryGetConfirmationRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): QueryGetConfirmationRequest;
    fromJSON(object: any): QueryGetConfirmationRequest;
    toJSON(message: QueryGetConfirmationRequest): unknown;
    fromPartial<I extends {
        root?: string;
    } & {
        root?: string;
    } & { [K in Exclude<keyof I, "root">]: never; }>(object: I): QueryGetConfirmationRequest;
};
export declare const QueryGetConfirmationResponse: {
    encode(message: QueryGetConfirmationResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): QueryGetConfirmationResponse;
    fromJSON(object: any): QueryGetConfirmationResponse;
    toJSON(message: QueryGetConfirmationResponse): unknown;
    fromPartial<I extends {
        confirmation?: {
            root?: string;
            indexes?: string[];
            signatureECDSA?: string;
            creator?: string;
        };
    } & {
        confirmation?: {
            root?: string;
            indexes?: string[];
            signatureECDSA?: string;
            creator?: string;
        } & {
            root?: string;
            indexes?: string[] & string[] & { [K in Exclude<keyof I["confirmation"]["indexes"], keyof string[]>]: never; };
            signatureECDSA?: string;
            creator?: string;
        } & { [K_1 in Exclude<keyof I["confirmation"], keyof Confirmation>]: never; };
    } & { [K_2 in Exclude<keyof I, "confirmation">]: never; }>(object: I): QueryGetConfirmationResponse;
};
export declare const QueryAllConfirmationRequest: {
    encode(message: QueryAllConfirmationRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllConfirmationRequest;
    fromJSON(object: any): QueryAllConfirmationRequest;
    toJSON(message: QueryAllConfirmationRequest): unknown;
    fromPartial<I extends {
        pagination?: {
            key?: Uint8Array;
            offset?: number;
            limit?: number;
            countTotal?: boolean;
            reverse?: boolean;
        };
    } & {
        pagination?: {
            key?: Uint8Array;
            offset?: number;
            limit?: number;
            countTotal?: boolean;
            reverse?: boolean;
        } & {
            key?: Uint8Array;
            offset?: number;
            limit?: number;
            countTotal?: boolean;
            reverse?: boolean;
        } & { [K in Exclude<keyof I["pagination"], keyof PageRequest>]: never; };
    } & { [K_1 in Exclude<keyof I, "pagination">]: never; }>(object: I): QueryAllConfirmationRequest;
};
export declare const QueryAllConfirmationResponse: {
    encode(message: QueryAllConfirmationResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): QueryAllConfirmationResponse;
    fromJSON(object: any): QueryAllConfirmationResponse;
    toJSON(message: QueryAllConfirmationResponse): unknown;
    fromPartial<I extends {
        confirmation?: {
            root?: string;
            indexes?: string[];
            signatureECDSA?: string;
            creator?: string;
        }[];
        pagination?: {
            nextKey?: Uint8Array;
            total?: number;
        };
    } & {
        confirmation?: {
            root?: string;
            indexes?: string[];
            signatureECDSA?: string;
            creator?: string;
        }[] & ({
            root?: string;
            indexes?: string[];
            signatureECDSA?: string;
            creator?: string;
        } & {
            root?: string;
            indexes?: string[] & string[] & { [K in Exclude<keyof I["confirmation"][number]["indexes"], keyof string[]>]: never; };
            signatureECDSA?: string;
            creator?: string;
        } & { [K_1 in Exclude<keyof I["confirmation"][number], keyof Confirmation>]: never; })[] & { [K_2 in Exclude<keyof I["confirmation"], keyof {
            root?: string;
            indexes?: string[];
            signatureECDSA?: string;
            creator?: string;
        }[]>]: never; };
        pagination?: {
            nextKey?: Uint8Array;
            total?: number;
        } & {
            nextKey?: Uint8Array;
            total?: number;
        } & { [K_3 in Exclude<keyof I["pagination"], keyof PageResponse>]: never; };
    } & { [K_4 in Exclude<keyof I, keyof QueryAllConfirmationResponse>]: never; }>(object: I): QueryAllConfirmationResponse;
};
/** Query defines the gRPC querier service. */
export interface Query {
    /** Parameters queries the parameters of the module. */
    Params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
    /** Queries a Deposit by index. */
    Operation(request: QueryGetOperationRequest): Promise<QueryGetOperationResponse>;
    /** Queries a list of Deposit items. */
    OperationAll(request: QueryAllOperationRequest): Promise<QueryAllOperationResponse>;
    /** Queries a Confirmation by index. */
    Confirmation(request: QueryGetConfirmationRequest): Promise<QueryGetConfirmationResponse>;
    /** Queries a list of Confirmation items. */
    ConfirmationAll(request: QueryAllConfirmationRequest): Promise<QueryAllConfirmationResponse>;
}
export declare class QueryClientImpl implements Query {
    private readonly rpc;
    constructor(rpc: Rpc);
    Params(request: QueryParamsRequest): Promise<QueryParamsResponse>;
    Operation(request: QueryGetOperationRequest): Promise<QueryGetOperationResponse>;
    OperationAll(request: QueryAllOperationRequest): Promise<QueryAllOperationResponse>;
    Confirmation(request: QueryGetConfirmationRequest): Promise<QueryGetConfirmationResponse>;
    ConfirmationAll(request: QueryAllConfirmationRequest): Promise<QueryAllConfirmationResponse>;
}
interface Rpc {
    request(service: string, method: string, data: Uint8Array): Promise<Uint8Array>;
}
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 {};
