/// <reference types="node" />
/**
 * Generated by the protoc-gen-ts.  DO NOT EDIT!
 * compiler version: 3.19.1
 * source: leaderboard.proto
 * git: https://github.com/thesayyn/protoc-gen-ts */
import * as dependency_1 from "./common";
import * as pb_1 from "google-protobuf";
import * as grpc_1 from "@grpc/grpc-js";
export declare namespace leaderboard {
    export enum _Order {
        ASCENDING = 0,
        DESCENDING = 1
    }
    export class _Element extends pb_1.Message {
        #private;
        constructor(data?: any[] | {
            id?: number;
            score?: number;
        });
        get id(): number;
        set id(value: number);
        get score(): number;
        set score(value: number);
        static fromObject(data: {
            id?: number;
            score?: number;
        }): _Element;
        toObject(): {
            id?: number;
            score?: number;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _Element;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _Element;
    }
    export class _RankedElement extends pb_1.Message {
        #private;
        constructor(data?: any[] | {
            id?: number;
            rank?: number;
            score?: number;
        });
        get id(): number;
        set id(value: number);
        get rank(): number;
        set rank(value: number);
        get score(): number;
        set score(value: number);
        static fromObject(data: {
            id?: number;
            rank?: number;
            score?: number;
        }): _RankedElement;
        toObject(): {
            id?: number;
            rank?: number;
            score?: number;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _RankedElement;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _RankedElement;
    }
    export class _RankRange extends pb_1.Message {
        #private;
        constructor(data?: any[] | {
            start_inclusive?: number;
            end_exclusive?: number;
        });
        get start_inclusive(): number;
        set start_inclusive(value: number);
        get end_exclusive(): number;
        set end_exclusive(value: number);
        static fromObject(data: {
            start_inclusive?: number;
            end_exclusive?: number;
        }): _RankRange;
        toObject(): {
            start_inclusive?: number;
            end_exclusive?: number;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _RankRange;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _RankRange;
    }
    export class _ScoreRange extends pb_1.Message {
        #private;
        constructor(data?: any[] | ({} & (({
            unbounded_min?: dependency_1.common._Unbounded;
            min_inclusive?: never;
        } | {
            unbounded_min?: never;
            min_inclusive?: number;
        }) | ({
            unbounded_max?: dependency_1.common._Unbounded;
            max_exclusive?: never;
        } | {
            unbounded_max?: never;
            max_exclusive?: number;
        }))));
        get unbounded_min(): dependency_1.common._Unbounded;
        set unbounded_min(value: dependency_1.common._Unbounded);
        get has_unbounded_min(): boolean;
        get min_inclusive(): number;
        set min_inclusive(value: number);
        get has_min_inclusive(): boolean;
        get unbounded_max(): dependency_1.common._Unbounded;
        set unbounded_max(value: dependency_1.common._Unbounded);
        get has_unbounded_max(): boolean;
        get max_exclusive(): number;
        set max_exclusive(value: number);
        get has_max_exclusive(): boolean;
        get min(): "none" | "unbounded_min" | "min_inclusive";
        get max(): "none" | "unbounded_max" | "max_exclusive";
        static fromObject(data: {
            unbounded_min?: ReturnType<typeof dependency_1.common._Unbounded.prototype.toObject>;
            min_inclusive?: number;
            unbounded_max?: ReturnType<typeof dependency_1.common._Unbounded.prototype.toObject>;
            max_exclusive?: number;
        }): _ScoreRange;
        toObject(): {
            unbounded_min?: ReturnType<typeof dependency_1.common._Unbounded.prototype.toObject>;
            min_inclusive?: number;
            unbounded_max?: ReturnType<typeof dependency_1.common._Unbounded.prototype.toObject>;
            max_exclusive?: number;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _ScoreRange;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _ScoreRange;
    }
    export class _DeleteLeaderboardRequest extends pb_1.Message {
        #private;
        constructor(data?: any[] | {
            leaderboard?: string;
        });
        get leaderboard(): string;
        set leaderboard(value: string);
        static fromObject(data: {
            leaderboard?: string;
        }): _DeleteLeaderboardRequest;
        toObject(): {
            leaderboard?: string;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _DeleteLeaderboardRequest;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _DeleteLeaderboardRequest;
    }
    export class _GetLeaderboardLengthRequest extends pb_1.Message {
        #private;
        constructor(data?: any[] | {
            leaderboard?: string;
        });
        get leaderboard(): string;
        set leaderboard(value: string);
        static fromObject(data: {
            leaderboard?: string;
        }): _GetLeaderboardLengthRequest;
        toObject(): {
            leaderboard?: string;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _GetLeaderboardLengthRequest;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _GetLeaderboardLengthRequest;
    }
    export class _GetLeaderboardLengthResponse extends pb_1.Message {
        #private;
        constructor(data?: any[] | {
            count?: number;
        });
        get count(): number;
        set count(value: number);
        static fromObject(data: {
            count?: number;
        }): _GetLeaderboardLengthResponse;
        toObject(): {
            count?: number;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _GetLeaderboardLengthResponse;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _GetLeaderboardLengthResponse;
    }
    export class _UpsertElementsRequest extends pb_1.Message {
        #private;
        constructor(data?: any[] | {
            leaderboard?: string;
            elements?: _Element[];
        });
        get leaderboard(): string;
        set leaderboard(value: string);
        get elements(): _Element[];
        set elements(value: _Element[]);
        static fromObject(data: {
            leaderboard?: string;
            elements?: ReturnType<typeof _Element.prototype.toObject>[];
        }): _UpsertElementsRequest;
        toObject(): {
            leaderboard?: string;
            elements?: ReturnType<typeof _Element.prototype.toObject>[];
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _UpsertElementsRequest;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _UpsertElementsRequest;
    }
    export class _GetByRankRequest extends pb_1.Message {
        #private;
        constructor(data?: any[] | {
            leaderboard?: string;
            rank_range?: _RankRange;
            order?: _Order;
        });
        get leaderboard(): string;
        set leaderboard(value: string);
        get rank_range(): _RankRange;
        set rank_range(value: _RankRange);
        get has_rank_range(): boolean;
        get order(): _Order;
        set order(value: _Order);
        static fromObject(data: {
            leaderboard?: string;
            rank_range?: ReturnType<typeof _RankRange.prototype.toObject>;
            order?: _Order;
        }): _GetByRankRequest;
        toObject(): {
            leaderboard?: string;
            rank_range?: ReturnType<typeof _RankRange.prototype.toObject>;
            order?: _Order;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _GetByRankRequest;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _GetByRankRequest;
    }
    export class _GetByRankResponse extends pb_1.Message {
        #private;
        constructor(data?: any[] | {
            elements?: _RankedElement[];
        });
        get elements(): _RankedElement[];
        set elements(value: _RankedElement[]);
        static fromObject(data: {
            elements?: ReturnType<typeof _RankedElement.prototype.toObject>[];
        }): _GetByRankResponse;
        toObject(): {
            elements?: ReturnType<typeof _RankedElement.prototype.toObject>[];
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _GetByRankResponse;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _GetByRankResponse;
    }
    export class _GetRankRequest extends pb_1.Message {
        #private;
        constructor(data?: any[] | {
            leaderboard?: string;
            ids?: number[];
            order?: _Order;
        });
        get leaderboard(): string;
        set leaderboard(value: string);
        get ids(): number[];
        set ids(value: number[]);
        get order(): _Order;
        set order(value: _Order);
        static fromObject(data: {
            leaderboard?: string;
            ids?: number[];
            order?: _Order;
        }): _GetRankRequest;
        toObject(): {
            leaderboard?: string;
            ids?: number[];
            order?: _Order;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _GetRankRequest;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _GetRankRequest;
    }
    export class _GetRankResponse extends pb_1.Message {
        #private;
        constructor(data?: any[] | {
            elements?: _RankedElement[];
        });
        get elements(): _RankedElement[];
        set elements(value: _RankedElement[]);
        static fromObject(data: {
            elements?: ReturnType<typeof _RankedElement.prototype.toObject>[];
        }): _GetRankResponse;
        toObject(): {
            elements?: ReturnType<typeof _RankedElement.prototype.toObject>[];
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _GetRankResponse;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _GetRankResponse;
    }
    export class _RemoveElementsRequest extends pb_1.Message {
        #private;
        constructor(data?: any[] | {
            leaderboard?: string;
            ids?: number[];
        });
        get leaderboard(): string;
        set leaderboard(value: string);
        get ids(): number[];
        set ids(value: number[]);
        static fromObject(data: {
            leaderboard?: string;
            ids?: number[];
        }): _RemoveElementsRequest;
        toObject(): {
            leaderboard?: string;
            ids?: number[];
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _RemoveElementsRequest;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _RemoveElementsRequest;
    }
    export class _GetByScoreRequest extends pb_1.Message {
        #private;
        constructor(data?: any[] | {
            leaderboard?: string;
            score_range?: _ScoreRange;
            offset?: number;
            limit_elements?: number;
            order?: _Order;
        });
        get leaderboard(): string;
        set leaderboard(value: string);
        get score_range(): _ScoreRange;
        set score_range(value: _ScoreRange);
        get has_score_range(): boolean;
        get offset(): number;
        set offset(value: number);
        get limit_elements(): number;
        set limit_elements(value: number);
        get order(): _Order;
        set order(value: _Order);
        static fromObject(data: {
            leaderboard?: string;
            score_range?: ReturnType<typeof _ScoreRange.prototype.toObject>;
            offset?: number;
            limit_elements?: number;
            order?: _Order;
        }): _GetByScoreRequest;
        toObject(): {
            leaderboard?: string;
            score_range?: ReturnType<typeof _ScoreRange.prototype.toObject>;
            offset?: number;
            limit_elements?: number;
            order?: _Order;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _GetByScoreRequest;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _GetByScoreRequest;
    }
    export class _GetByScoreResponse extends pb_1.Message {
        #private;
        constructor(data?: any[] | {
            elements?: _RankedElement[];
        });
        get elements(): _RankedElement[];
        set elements(value: _RankedElement[]);
        static fromObject(data: {
            elements?: ReturnType<typeof _RankedElement.prototype.toObject>[];
        }): _GetByScoreResponse;
        toObject(): {
            elements?: ReturnType<typeof _RankedElement.prototype.toObject>[];
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _GetByScoreResponse;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _GetByScoreResponse;
    }
    export class _GetCompetitionRankRequest extends pb_1.Message {
        #private;
        constructor(data?: any[] | ({
            leaderboard?: string;
            ids?: number[];
        } & (({
            order?: _Order;
        }))));
        get leaderboard(): string;
        set leaderboard(value: string);
        get ids(): number[];
        set ids(value: number[]);
        get order(): _Order;
        set order(value: _Order);
        get has_order(): boolean;
        get _order(): "none" | "order";
        static fromObject(data: {
            leaderboard?: string;
            ids?: number[];
            order?: _Order;
        }): _GetCompetitionRankRequest;
        toObject(): {
            leaderboard?: string;
            ids?: number[];
            order?: _Order;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _GetCompetitionRankRequest;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _GetCompetitionRankRequest;
    }
    export class _GetCompetitionRankResponse extends pb_1.Message {
        #private;
        constructor(data?: any[] | {
            elements?: _RankedElement[];
        });
        get elements(): _RankedElement[];
        set elements(value: _RankedElement[]);
        static fromObject(data: {
            elements?: ReturnType<typeof _RankedElement.prototype.toObject>[];
        }): _GetCompetitionRankResponse;
        toObject(): {
            elements?: ReturnType<typeof _RankedElement.prototype.toObject>[];
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _GetCompetitionRankResponse;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _GetCompetitionRankResponse;
    }
    interface GrpcUnaryServiceInterface<P, R> {
        (message: P, metadata: grpc_1.Metadata, options: grpc_1.CallOptions, callback: grpc_1.requestCallback<R>): grpc_1.ClientUnaryCall;
        (message: P, metadata: grpc_1.Metadata, callback: grpc_1.requestCallback<R>): grpc_1.ClientUnaryCall;
        (message: P, options: grpc_1.CallOptions, callback: grpc_1.requestCallback<R>): grpc_1.ClientUnaryCall;
        (message: P, callback: grpc_1.requestCallback<R>): grpc_1.ClientUnaryCall;
    }
    export abstract class UnimplementedLeaderboardService {
        static definition: {
            DeleteLeaderboard: {
                path: string;
                requestStream: boolean;
                responseStream: boolean;
                requestSerialize: (message: _DeleteLeaderboardRequest) => Buffer;
                requestDeserialize: (bytes: Buffer) => _DeleteLeaderboardRequest;
                responseSerialize: (message: dependency_1.common._Empty) => Buffer;
                responseDeserialize: (bytes: Buffer) => dependency_1.common._Empty;
            };
            UpsertElements: {
                path: string;
                requestStream: boolean;
                responseStream: boolean;
                requestSerialize: (message: _UpsertElementsRequest) => Buffer;
                requestDeserialize: (bytes: Buffer) => _UpsertElementsRequest;
                responseSerialize: (message: dependency_1.common._Empty) => Buffer;
                responseDeserialize: (bytes: Buffer) => dependency_1.common._Empty;
            };
            RemoveElements: {
                path: string;
                requestStream: boolean;
                responseStream: boolean;
                requestSerialize: (message: _RemoveElementsRequest) => Buffer;
                requestDeserialize: (bytes: Buffer) => _RemoveElementsRequest;
                responseSerialize: (message: dependency_1.common._Empty) => Buffer;
                responseDeserialize: (bytes: Buffer) => dependency_1.common._Empty;
            };
            GetLeaderboardLength: {
                path: string;
                requestStream: boolean;
                responseStream: boolean;
                requestSerialize: (message: _GetLeaderboardLengthRequest) => Buffer;
                requestDeserialize: (bytes: Buffer) => _GetLeaderboardLengthRequest;
                responseSerialize: (message: _GetLeaderboardLengthResponse) => Buffer;
                responseDeserialize: (bytes: Buffer) => _GetLeaderboardLengthResponse;
            };
            GetByRank: {
                path: string;
                requestStream: boolean;
                responseStream: boolean;
                requestSerialize: (message: _GetByRankRequest) => Buffer;
                requestDeserialize: (bytes: Buffer) => _GetByRankRequest;
                responseSerialize: (message: _GetByRankResponse) => Buffer;
                responseDeserialize: (bytes: Buffer) => _GetByRankResponse;
            };
            GetRank: {
                path: string;
                requestStream: boolean;
                responseStream: boolean;
                requestSerialize: (message: _GetRankRequest) => Buffer;
                requestDeserialize: (bytes: Buffer) => _GetRankRequest;
                responseSerialize: (message: _GetRankResponse) => Buffer;
                responseDeserialize: (bytes: Buffer) => _GetRankResponse;
            };
            GetByScore: {
                path: string;
                requestStream: boolean;
                responseStream: boolean;
                requestSerialize: (message: _GetByScoreRequest) => Buffer;
                requestDeserialize: (bytes: Buffer) => _GetByScoreRequest;
                responseSerialize: (message: _GetByScoreResponse) => Buffer;
                responseDeserialize: (bytes: Buffer) => _GetByScoreResponse;
            };
            GetCompetitionRank: {
                path: string;
                requestStream: boolean;
                responseStream: boolean;
                requestSerialize: (message: _GetCompetitionRankRequest) => Buffer;
                requestDeserialize: (bytes: Buffer) => _GetCompetitionRankRequest;
                responseSerialize: (message: _GetCompetitionRankResponse) => Buffer;
                responseDeserialize: (bytes: Buffer) => _GetCompetitionRankResponse;
            };
        };
        [method: string]: grpc_1.UntypedHandleCall;
        abstract DeleteLeaderboard(call: grpc_1.ServerUnaryCall<_DeleteLeaderboardRequest, dependency_1.common._Empty>, callback: grpc_1.sendUnaryData<dependency_1.common._Empty>): void;
        abstract UpsertElements(call: grpc_1.ServerUnaryCall<_UpsertElementsRequest, dependency_1.common._Empty>, callback: grpc_1.sendUnaryData<dependency_1.common._Empty>): void;
        abstract RemoveElements(call: grpc_1.ServerUnaryCall<_RemoveElementsRequest, dependency_1.common._Empty>, callback: grpc_1.sendUnaryData<dependency_1.common._Empty>): void;
        abstract GetLeaderboardLength(call: grpc_1.ServerUnaryCall<_GetLeaderboardLengthRequest, _GetLeaderboardLengthResponse>, callback: grpc_1.sendUnaryData<_GetLeaderboardLengthResponse>): void;
        abstract GetByRank(call: grpc_1.ServerUnaryCall<_GetByRankRequest, _GetByRankResponse>, callback: grpc_1.sendUnaryData<_GetByRankResponse>): void;
        abstract GetRank(call: grpc_1.ServerUnaryCall<_GetRankRequest, _GetRankResponse>, callback: grpc_1.sendUnaryData<_GetRankResponse>): void;
        abstract GetByScore(call: grpc_1.ServerUnaryCall<_GetByScoreRequest, _GetByScoreResponse>, callback: grpc_1.sendUnaryData<_GetByScoreResponse>): void;
        abstract GetCompetitionRank(call: grpc_1.ServerUnaryCall<_GetCompetitionRankRequest, _GetCompetitionRankResponse>, callback: grpc_1.sendUnaryData<_GetCompetitionRankResponse>): void;
    }
    const LeaderboardClient_base: grpc_1.ServiceClientConstructor;
    export class LeaderboardClient extends LeaderboardClient_base {
        constructor(address: string, credentials: grpc_1.ChannelCredentials, options?: Partial<grpc_1.ChannelOptions>);
        DeleteLeaderboard: GrpcUnaryServiceInterface<_DeleteLeaderboardRequest, dependency_1.common._Empty>;
        UpsertElements: GrpcUnaryServiceInterface<_UpsertElementsRequest, dependency_1.common._Empty>;
        RemoveElements: GrpcUnaryServiceInterface<_RemoveElementsRequest, dependency_1.common._Empty>;
        GetLeaderboardLength: GrpcUnaryServiceInterface<_GetLeaderboardLengthRequest, _GetLeaderboardLengthResponse>;
        GetByRank: GrpcUnaryServiceInterface<_GetByRankRequest, _GetByRankResponse>;
        GetRank: GrpcUnaryServiceInterface<_GetRankRequest, _GetRankResponse>;
        GetByScore: GrpcUnaryServiceInterface<_GetByScoreRequest, _GetByScoreResponse>;
        GetCompetitionRank: GrpcUnaryServiceInterface<_GetCompetitionRankRequest, _GetCompetitionRankResponse>;
    }
    export {};
}
