/**
 * #redisapi.ts
 *
 * @packageDocumentation
 */
import _m0 from "protobufjs/minimal.js";
import { Metadata } from "../../../../lib/Types.js";
import { Empty } from "../../../google/protobuf/empty.js";
import { BytesValue, DoubleValue, Int64Value, StringValue } from "../../../google/protobuf/wrappers.js";
/**
 * This key scope determines the key namespacing in Redis storage
 * By default, all keys in Redis are namespaced to an installation
 * Global redis enables apps to persist and access state across subreddit installations
 * Default key format - installation:app:custom-key
 * Global redis key format - global:app:custom-key
 */
export declare enum RedisKeyScope {
    INSTALLATION = 0,
    GLOBAL = 1,
    UNRECOGNIZED = -1
}
export declare function redisKeyScopeFromJSON(object: any): RedisKeyScope;
export declare function redisKeyScopeToJSON(object: RedisKeyScope): number;
export declare enum BitfieldOverflowBehavior {
    BITFIELD_OVERFLOW_BEHAVIOR_UNSPECIFIED = 0,
    BITFIELD_OVERFLOW_BEHAVIOR_WRAP = 1,
    BITFIELD_OVERFLOW_BEHAVIOR_SAT = 2,
    BITFIELD_OVERFLOW_BEHAVIOR_FAIL = 3,
    UNRECOGNIZED = -1
}
export declare function bitfieldOverflowBehaviorFromJSON(object: any): BitfieldOverflowBehavior;
export declare function bitfieldOverflowBehaviorToJSON(object: BitfieldOverflowBehavior): number;
export interface TransactionResponses {
    response: TransactionResponse[];
}
export interface TransactionResponse {
    str?: string | undefined;
    nil?: Empty | undefined;
    num?: number | undefined;
    members?: ZMembers | undefined;
    values?: RedisValues | undefined;
    dbl?: number | undefined;
    bool?: boolean | undefined;
}
export interface ZRangeRequest {
    key?: KeyRequest | undefined;
    start: string;
    stop: string;
    byScore: boolean;
    byLex: boolean;
    rev: boolean;
    offset: number;
    count: number;
    scope?: RedisKeyScope | undefined;
}
export interface ZRangeByLexRequest {
    key?: KeyRequest | undefined;
    min: string;
    max: string;
    scope?: RedisKeyScope | undefined;
}
export interface ZRangeByScoreRequest {
    key?: KeyRequest | undefined;
    min: number;
    max: number;
    withScores: boolean;
    scope?: RedisKeyScope | undefined;
}
export interface ZRemRequest {
    key?: KeyRequest | undefined;
    members: string[];
    scope?: RedisKeyScope | undefined;
}
export interface ZRemRangeByLexRequest {
    key?: KeyRequest | undefined;
    min: string;
    max: string;
    scope?: RedisKeyScope | undefined;
}
export interface ZRemRangeByRankRequest {
    key?: KeyRequest | undefined;
    start: number;
    stop: number;
    scope?: RedisKeyScope | undefined;
}
export interface ZRemRangeByScoreRequest {
    key?: KeyRequest | undefined;
    min: number;
    max: number;
    scope?: RedisKeyScope | undefined;
}
export interface ZScoreRequest {
    key?: KeyRequest | undefined;
    member: string;
    scope?: RedisKeyScope | undefined;
}
export interface ZRankRequest {
    key?: KeyRequest | undefined;
    member: string;
    scope?: RedisKeyScope | undefined;
}
export interface RedisRankScore {
    rank: number;
    score: number;
}
export interface ZIncrByRequest {
    key: string;
    member: string;
    value: number;
    /** Optional transaction id */
    transactionId?: TransactionId | undefined;
    scope?: RedisKeyScope | undefined;
}
export interface KeyRequest {
    key: string;
    /** Optional transaction id */
    transactionId?: TransactionId | undefined;
    scope?: RedisKeyScope | undefined;
}
export interface IncrByRequest {
    key: string;
    value: number;
    /** Optional transaction id */
    transactionId?: TransactionId | undefined;
    scope?: RedisKeyScope | undefined;
}
export interface SetRequest {
    key: string;
    value: string;
    /** Expiration time in seconds */
    expiration: number;
    /** Set only if key does not exist */
    nx: boolean;
    /** Set only if key already exists */
    xx: boolean;
    /** Optional transaction id */
    transactionId?: TransactionId | undefined;
    scope?: RedisKeyScope | undefined;
}
export interface KeyRangeRequest {
    key: string;
    start: number;
    end: number;
    /** Optional transaction id */
    transactionId?: TransactionId | undefined;
    scope?: RedisKeyScope | undefined;
}
export interface SetRangeRequest {
    key: string;
    offset: number;
    value: string;
    /** Optional transaction id */
    transactionId?: TransactionId | undefined;
    scope?: RedisKeyScope | undefined;
}
export interface KeysRequest {
    keys: string[];
    /** Optional transaction id */
    transactionId?: TransactionId | undefined;
    scope?: RedisKeyScope | undefined;
}
export interface KeysResponse {
    keys: string[];
}
export interface ExistsResponse {
    existingKeys: number;
}
export interface HGetRequest {
    key: string;
    field: string;
    /** Optional transaction id */
    transactionId?: TransactionId | undefined;
    scope?: RedisKeyScope | undefined;
}
export interface HMGetRequest {
    key: string;
    fields: string[];
    /** Optional transaction id */
    transactionId?: TransactionId | undefined;
    scope?: RedisKeyScope | undefined;
}
export interface HSetRequest {
    key: string;
    fv: RedisFieldValue[];
    /** Optional transaction id */
    transactionId?: TransactionId | undefined;
    scope?: RedisKeyScope | undefined;
}
export interface HSetNXResponse {
    success: number;
}
export interface HDelRequest {
    key: string;
    fields: string[];
    /** Optional transaction id */
    transactionId?: TransactionId | undefined;
    scope?: RedisKeyScope | undefined;
}
export interface HScanRequest {
    key: string;
    cursor: number;
    pattern?: string | undefined;
    count?: number | undefined;
    /** Optional transaction id */
    transactionId?: TransactionId | undefined;
    scope?: RedisKeyScope | undefined;
}
export interface HScanResponse {
    cursor: number;
    fieldValues: RedisFieldValue[];
}
export interface HIncrByRequest {
    key: string;
    field: string;
    value: number;
    /** Optional transaction id */
    transactionId?: TransactionId | undefined;
    scope?: RedisKeyScope | undefined;
}
export interface RedisFieldValue {
    field: string;
    value: string;
}
export interface RedisFieldValues {
    fieldValues: {
        [key: string]: string;
    };
}
export interface RedisFieldValues_FieldValuesEntry {
    key: string;
    value: string;
}
export interface KeyValuesRequest {
    kv: RedisKeyValue[];
    /** Optional transaction id */
    transactionId?: TransactionId | undefined;
    scope?: RedisKeyScope | undefined;
}
export interface RedisKeyValue {
    key: string;
    value: string;
}
export interface RedisValues {
    values: string[];
}
export interface ExpireRequest {
    key: string;
    seconds: number;
    /** Optional transaction id */
    transactionId?: TransactionId | undefined;
    scope?: RedisKeyScope | undefined;
}
export interface ZAddRequest {
    key: string;
    members: ZMember[];
    /** Optional transaction id */
    transactionId?: TransactionId | undefined;
    scope?: RedisKeyScope | undefined;
}
export interface ZScanRequest {
    key: string;
    cursor: number;
    pattern?: string | undefined;
    count?: number | undefined;
    /** Optional transaction id */
    transactionId?: TransactionId | undefined;
    scope?: RedisKeyScope | undefined;
}
export interface ZScanResponse {
    cursor: number;
    members: ZMember[];
}
export interface ZMembers {
    members: ZMember[];
}
export interface ZMember {
    score: number;
    member: string;
}
export interface TransactionId {
    id: string;
}
export interface WatchRequest {
    transactionId?: TransactionId | undefined;
    keys: string[];
}
export interface BitfieldRequest {
    key: string;
    commands: BitfieldCommand[];
    /** Optional transaction id */
    transactionId?: TransactionId | undefined;
}
export interface BitfieldCommand {
    get?: BitfieldGet | undefined;
    set?: BitfieldSet | undefined;
    incrBy?: BitfieldIncrBy | undefined;
    overflow?: BitfieldOverflow | undefined;
}
export interface BitfieldGet {
    encoding: string;
    offset: string;
}
export interface BitfieldSet {
    encoding: string;
    offset: string;
    value: string;
}
export interface BitfieldIncrBy {
    encoding: string;
    offset: string;
    increment: string;
}
export interface BitfieldOverflow {
    behavior: BitfieldOverflowBehavior;
}
export interface BitfieldResponse {
    results: number[];
}
export interface HSetNXRequest {
    key: string;
    field: string;
    value: string;
    /** Optional transaction id */
    transactionId?: TransactionId | undefined;
    scope?: RedisKeyScope | undefined;
}
export interface RenameRequest {
    key: string;
    newKey: string;
    scope?: RedisKeyScope | undefined;
}
export interface RenameResponse {
    result: string;
}
export declare const TransactionResponses: {
    $type: "devvit.plugin.redis.TransactionResponses";
    encode(message: TransactionResponses, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): TransactionResponses;
    fromJSON(object: any): TransactionResponses;
    toJSON(message: TransactionResponses): unknown;
    create(base?: DeepPartial<TransactionResponses>): TransactionResponses;
    fromPartial(object: DeepPartial<TransactionResponses>): TransactionResponses;
};
export declare const TransactionResponse: {
    $type: "devvit.plugin.redis.TransactionResponse";
    encode(message: TransactionResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): TransactionResponse;
    fromJSON(object: any): TransactionResponse;
    toJSON(message: TransactionResponse): unknown;
    create(base?: DeepPartial<TransactionResponse>): TransactionResponse;
    fromPartial(object: DeepPartial<TransactionResponse>): TransactionResponse;
};
export declare const ZRangeRequest: {
    $type: "devvit.plugin.redis.ZRangeRequest";
    encode(message: ZRangeRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ZRangeRequest;
    fromJSON(object: any): ZRangeRequest;
    toJSON(message: ZRangeRequest): unknown;
    create(base?: DeepPartial<ZRangeRequest>): ZRangeRequest;
    fromPartial(object: DeepPartial<ZRangeRequest>): ZRangeRequest;
};
export declare const ZRangeByLexRequest: {
    $type: "devvit.plugin.redis.ZRangeByLexRequest";
    encode(message: ZRangeByLexRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ZRangeByLexRequest;
    fromJSON(object: any): ZRangeByLexRequest;
    toJSON(message: ZRangeByLexRequest): unknown;
    create(base?: DeepPartial<ZRangeByLexRequest>): ZRangeByLexRequest;
    fromPartial(object: DeepPartial<ZRangeByLexRequest>): ZRangeByLexRequest;
};
export declare const ZRangeByScoreRequest: {
    $type: "devvit.plugin.redis.ZRangeByScoreRequest";
    encode(message: ZRangeByScoreRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ZRangeByScoreRequest;
    fromJSON(object: any): ZRangeByScoreRequest;
    toJSON(message: ZRangeByScoreRequest): unknown;
    create(base?: DeepPartial<ZRangeByScoreRequest>): ZRangeByScoreRequest;
    fromPartial(object: DeepPartial<ZRangeByScoreRequest>): ZRangeByScoreRequest;
};
export declare const ZRemRequest: {
    $type: "devvit.plugin.redis.ZRemRequest";
    encode(message: ZRemRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ZRemRequest;
    fromJSON(object: any): ZRemRequest;
    toJSON(message: ZRemRequest): unknown;
    create(base?: DeepPartial<ZRemRequest>): ZRemRequest;
    fromPartial(object: DeepPartial<ZRemRequest>): ZRemRequest;
};
export declare const ZRemRangeByLexRequest: {
    $type: "devvit.plugin.redis.ZRemRangeByLexRequest";
    encode(message: ZRemRangeByLexRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ZRemRangeByLexRequest;
    fromJSON(object: any): ZRemRangeByLexRequest;
    toJSON(message: ZRemRangeByLexRequest): unknown;
    create(base?: DeepPartial<ZRemRangeByLexRequest>): ZRemRangeByLexRequest;
    fromPartial(object: DeepPartial<ZRemRangeByLexRequest>): ZRemRangeByLexRequest;
};
export declare const ZRemRangeByRankRequest: {
    $type: "devvit.plugin.redis.ZRemRangeByRankRequest";
    encode(message: ZRemRangeByRankRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ZRemRangeByRankRequest;
    fromJSON(object: any): ZRemRangeByRankRequest;
    toJSON(message: ZRemRangeByRankRequest): unknown;
    create(base?: DeepPartial<ZRemRangeByRankRequest>): ZRemRangeByRankRequest;
    fromPartial(object: DeepPartial<ZRemRangeByRankRequest>): ZRemRangeByRankRequest;
};
export declare const ZRemRangeByScoreRequest: {
    $type: "devvit.plugin.redis.ZRemRangeByScoreRequest";
    encode(message: ZRemRangeByScoreRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ZRemRangeByScoreRequest;
    fromJSON(object: any): ZRemRangeByScoreRequest;
    toJSON(message: ZRemRangeByScoreRequest): unknown;
    create(base?: DeepPartial<ZRemRangeByScoreRequest>): ZRemRangeByScoreRequest;
    fromPartial(object: DeepPartial<ZRemRangeByScoreRequest>): ZRemRangeByScoreRequest;
};
export declare const ZScoreRequest: {
    $type: "devvit.plugin.redis.ZScoreRequest";
    encode(message: ZScoreRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ZScoreRequest;
    fromJSON(object: any): ZScoreRequest;
    toJSON(message: ZScoreRequest): unknown;
    create(base?: DeepPartial<ZScoreRequest>): ZScoreRequest;
    fromPartial(object: DeepPartial<ZScoreRequest>): ZScoreRequest;
};
export declare const ZRankRequest: {
    $type: "devvit.plugin.redis.ZRankRequest";
    encode(message: ZRankRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ZRankRequest;
    fromJSON(object: any): ZRankRequest;
    toJSON(message: ZRankRequest): unknown;
    create(base?: DeepPartial<ZRankRequest>): ZRankRequest;
    fromPartial(object: DeepPartial<ZRankRequest>): ZRankRequest;
};
export declare const RedisRankScore: {
    $type: "devvit.plugin.redis.RedisRankScore";
    encode(message: RedisRankScore, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): RedisRankScore;
    fromJSON(object: any): RedisRankScore;
    toJSON(message: RedisRankScore): unknown;
    create(base?: DeepPartial<RedisRankScore>): RedisRankScore;
    fromPartial(object: DeepPartial<RedisRankScore>): RedisRankScore;
};
export declare const ZIncrByRequest: {
    $type: "devvit.plugin.redis.ZIncrByRequest";
    encode(message: ZIncrByRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ZIncrByRequest;
    fromJSON(object: any): ZIncrByRequest;
    toJSON(message: ZIncrByRequest): unknown;
    create(base?: DeepPartial<ZIncrByRequest>): ZIncrByRequest;
    fromPartial(object: DeepPartial<ZIncrByRequest>): ZIncrByRequest;
};
export declare const KeyRequest: {
    $type: "devvit.plugin.redis.KeyRequest";
    encode(message: KeyRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): KeyRequest;
    fromJSON(object: any): KeyRequest;
    toJSON(message: KeyRequest): unknown;
    create(base?: DeepPartial<KeyRequest>): KeyRequest;
    fromPartial(object: DeepPartial<KeyRequest>): KeyRequest;
};
export declare const IncrByRequest: {
    $type: "devvit.plugin.redis.IncrByRequest";
    encode(message: IncrByRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): IncrByRequest;
    fromJSON(object: any): IncrByRequest;
    toJSON(message: IncrByRequest): unknown;
    create(base?: DeepPartial<IncrByRequest>): IncrByRequest;
    fromPartial(object: DeepPartial<IncrByRequest>): IncrByRequest;
};
export declare const SetRequest: {
    $type: "devvit.plugin.redis.SetRequest";
    encode(message: SetRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SetRequest;
    fromJSON(object: any): SetRequest;
    toJSON(message: SetRequest): unknown;
    create(base?: DeepPartial<SetRequest>): SetRequest;
    fromPartial(object: DeepPartial<SetRequest>): SetRequest;
};
export declare const KeyRangeRequest: {
    $type: "devvit.plugin.redis.KeyRangeRequest";
    encode(message: KeyRangeRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): KeyRangeRequest;
    fromJSON(object: any): KeyRangeRequest;
    toJSON(message: KeyRangeRequest): unknown;
    create(base?: DeepPartial<KeyRangeRequest>): KeyRangeRequest;
    fromPartial(object: DeepPartial<KeyRangeRequest>): KeyRangeRequest;
};
export declare const SetRangeRequest: {
    $type: "devvit.plugin.redis.SetRangeRequest";
    encode(message: SetRangeRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): SetRangeRequest;
    fromJSON(object: any): SetRangeRequest;
    toJSON(message: SetRangeRequest): unknown;
    create(base?: DeepPartial<SetRangeRequest>): SetRangeRequest;
    fromPartial(object: DeepPartial<SetRangeRequest>): SetRangeRequest;
};
export declare const KeysRequest: {
    $type: "devvit.plugin.redis.KeysRequest";
    encode(message: KeysRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): KeysRequest;
    fromJSON(object: any): KeysRequest;
    toJSON(message: KeysRequest): unknown;
    create(base?: DeepPartial<KeysRequest>): KeysRequest;
    fromPartial(object: DeepPartial<KeysRequest>): KeysRequest;
};
export declare const KeysResponse: {
    $type: "devvit.plugin.redis.KeysResponse";
    encode(message: KeysResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): KeysResponse;
    fromJSON(object: any): KeysResponse;
    toJSON(message: KeysResponse): unknown;
    create(base?: DeepPartial<KeysResponse>): KeysResponse;
    fromPartial(object: DeepPartial<KeysResponse>): KeysResponse;
};
export declare const ExistsResponse: {
    $type: "devvit.plugin.redis.ExistsResponse";
    encode(message: ExistsResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ExistsResponse;
    fromJSON(object: any): ExistsResponse;
    toJSON(message: ExistsResponse): unknown;
    create(base?: DeepPartial<ExistsResponse>): ExistsResponse;
    fromPartial(object: DeepPartial<ExistsResponse>): ExistsResponse;
};
export declare const HGetRequest: {
    $type: "devvit.plugin.redis.HGetRequest";
    encode(message: HGetRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): HGetRequest;
    fromJSON(object: any): HGetRequest;
    toJSON(message: HGetRequest): unknown;
    create(base?: DeepPartial<HGetRequest>): HGetRequest;
    fromPartial(object: DeepPartial<HGetRequest>): HGetRequest;
};
export declare const HMGetRequest: {
    $type: "devvit.plugin.redis.HMGetRequest";
    encode(message: HMGetRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): HMGetRequest;
    fromJSON(object: any): HMGetRequest;
    toJSON(message: HMGetRequest): unknown;
    create(base?: DeepPartial<HMGetRequest>): HMGetRequest;
    fromPartial(object: DeepPartial<HMGetRequest>): HMGetRequest;
};
export declare const HSetRequest: {
    $type: "devvit.plugin.redis.HSetRequest";
    encode(message: HSetRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): HSetRequest;
    fromJSON(object: any): HSetRequest;
    toJSON(message: HSetRequest): unknown;
    create(base?: DeepPartial<HSetRequest>): HSetRequest;
    fromPartial(object: DeepPartial<HSetRequest>): HSetRequest;
};
export declare const HSetNXResponse: {
    $type: "devvit.plugin.redis.HSetNXResponse";
    encode(message: HSetNXResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): HSetNXResponse;
    fromJSON(object: any): HSetNXResponse;
    toJSON(message: HSetNXResponse): unknown;
    create(base?: DeepPartial<HSetNXResponse>): HSetNXResponse;
    fromPartial(object: DeepPartial<HSetNXResponse>): HSetNXResponse;
};
export declare const HDelRequest: {
    $type: "devvit.plugin.redis.HDelRequest";
    encode(message: HDelRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): HDelRequest;
    fromJSON(object: any): HDelRequest;
    toJSON(message: HDelRequest): unknown;
    create(base?: DeepPartial<HDelRequest>): HDelRequest;
    fromPartial(object: DeepPartial<HDelRequest>): HDelRequest;
};
export declare const HScanRequest: {
    $type: "devvit.plugin.redis.HScanRequest";
    encode(message: HScanRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): HScanRequest;
    fromJSON(object: any): HScanRequest;
    toJSON(message: HScanRequest): unknown;
    create(base?: DeepPartial<HScanRequest>): HScanRequest;
    fromPartial(object: DeepPartial<HScanRequest>): HScanRequest;
};
export declare const HScanResponse: {
    $type: "devvit.plugin.redis.HScanResponse";
    encode(message: HScanResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): HScanResponse;
    fromJSON(object: any): HScanResponse;
    toJSON(message: HScanResponse): unknown;
    create(base?: DeepPartial<HScanResponse>): HScanResponse;
    fromPartial(object: DeepPartial<HScanResponse>): HScanResponse;
};
export declare const HIncrByRequest: {
    $type: "devvit.plugin.redis.HIncrByRequest";
    encode(message: HIncrByRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): HIncrByRequest;
    fromJSON(object: any): HIncrByRequest;
    toJSON(message: HIncrByRequest): unknown;
    create(base?: DeepPartial<HIncrByRequest>): HIncrByRequest;
    fromPartial(object: DeepPartial<HIncrByRequest>): HIncrByRequest;
};
export declare const RedisFieldValue: {
    $type: "devvit.plugin.redis.RedisFieldValue";
    encode(message: RedisFieldValue, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): RedisFieldValue;
    fromJSON(object: any): RedisFieldValue;
    toJSON(message: RedisFieldValue): unknown;
    create(base?: DeepPartial<RedisFieldValue>): RedisFieldValue;
    fromPartial(object: DeepPartial<RedisFieldValue>): RedisFieldValue;
};
export declare const RedisFieldValues: {
    $type: "devvit.plugin.redis.RedisFieldValues";
    encode(message: RedisFieldValues, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): RedisFieldValues;
    fromJSON(object: any): RedisFieldValues;
    toJSON(message: RedisFieldValues): unknown;
    create(base?: DeepPartial<RedisFieldValues>): RedisFieldValues;
    fromPartial(object: DeepPartial<RedisFieldValues>): RedisFieldValues;
};
export declare const RedisFieldValues_FieldValuesEntry: {
    $type: "devvit.plugin.redis.RedisFieldValues.FieldValuesEntry";
    encode(message: RedisFieldValues_FieldValuesEntry, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): RedisFieldValues_FieldValuesEntry;
    fromJSON(object: any): RedisFieldValues_FieldValuesEntry;
    toJSON(message: RedisFieldValues_FieldValuesEntry): unknown;
    create(base?: DeepPartial<RedisFieldValues_FieldValuesEntry>): RedisFieldValues_FieldValuesEntry;
    fromPartial(object: DeepPartial<RedisFieldValues_FieldValuesEntry>): RedisFieldValues_FieldValuesEntry;
};
export declare const KeyValuesRequest: {
    $type: "devvit.plugin.redis.KeyValuesRequest";
    encode(message: KeyValuesRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): KeyValuesRequest;
    fromJSON(object: any): KeyValuesRequest;
    toJSON(message: KeyValuesRequest): unknown;
    create(base?: DeepPartial<KeyValuesRequest>): KeyValuesRequest;
    fromPartial(object: DeepPartial<KeyValuesRequest>): KeyValuesRequest;
};
export declare const RedisKeyValue: {
    $type: "devvit.plugin.redis.RedisKeyValue";
    encode(message: RedisKeyValue, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): RedisKeyValue;
    fromJSON(object: any): RedisKeyValue;
    toJSON(message: RedisKeyValue): unknown;
    create(base?: DeepPartial<RedisKeyValue>): RedisKeyValue;
    fromPartial(object: DeepPartial<RedisKeyValue>): RedisKeyValue;
};
export declare const RedisValues: {
    $type: "devvit.plugin.redis.RedisValues";
    encode(message: RedisValues, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): RedisValues;
    fromJSON(object: any): RedisValues;
    toJSON(message: RedisValues): unknown;
    create(base?: DeepPartial<RedisValues>): RedisValues;
    fromPartial(object: DeepPartial<RedisValues>): RedisValues;
};
export declare const ExpireRequest: {
    $type: "devvit.plugin.redis.ExpireRequest";
    encode(message: ExpireRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ExpireRequest;
    fromJSON(object: any): ExpireRequest;
    toJSON(message: ExpireRequest): unknown;
    create(base?: DeepPartial<ExpireRequest>): ExpireRequest;
    fromPartial(object: DeepPartial<ExpireRequest>): ExpireRequest;
};
export declare const ZAddRequest: {
    $type: "devvit.plugin.redis.ZAddRequest";
    encode(message: ZAddRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ZAddRequest;
    fromJSON(object: any): ZAddRequest;
    toJSON(message: ZAddRequest): unknown;
    create(base?: DeepPartial<ZAddRequest>): ZAddRequest;
    fromPartial(object: DeepPartial<ZAddRequest>): ZAddRequest;
};
export declare const ZScanRequest: {
    $type: "devvit.plugin.redis.ZScanRequest";
    encode(message: ZScanRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ZScanRequest;
    fromJSON(object: any): ZScanRequest;
    toJSON(message: ZScanRequest): unknown;
    create(base?: DeepPartial<ZScanRequest>): ZScanRequest;
    fromPartial(object: DeepPartial<ZScanRequest>): ZScanRequest;
};
export declare const ZScanResponse: {
    $type: "devvit.plugin.redis.ZScanResponse";
    encode(message: ZScanResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ZScanResponse;
    fromJSON(object: any): ZScanResponse;
    toJSON(message: ZScanResponse): unknown;
    create(base?: DeepPartial<ZScanResponse>): ZScanResponse;
    fromPartial(object: DeepPartial<ZScanResponse>): ZScanResponse;
};
export declare const ZMembers: {
    $type: "devvit.plugin.redis.ZMembers";
    encode(message: ZMembers, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ZMembers;
    fromJSON(object: any): ZMembers;
    toJSON(message: ZMembers): unknown;
    create(base?: DeepPartial<ZMembers>): ZMembers;
    fromPartial(object: DeepPartial<ZMembers>): ZMembers;
};
export declare const ZMember: {
    $type: "devvit.plugin.redis.ZMember";
    encode(message: ZMember, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): ZMember;
    fromJSON(object: any): ZMember;
    toJSON(message: ZMember): unknown;
    create(base?: DeepPartial<ZMember>): ZMember;
    fromPartial(object: DeepPartial<ZMember>): ZMember;
};
export declare const TransactionId: {
    $type: "devvit.plugin.redis.TransactionId";
    encode(message: TransactionId, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): TransactionId;
    fromJSON(object: any): TransactionId;
    toJSON(message: TransactionId): unknown;
    create(base?: DeepPartial<TransactionId>): TransactionId;
    fromPartial(object: DeepPartial<TransactionId>): TransactionId;
};
export declare const WatchRequest: {
    $type: "devvit.plugin.redis.WatchRequest";
    encode(message: WatchRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): WatchRequest;
    fromJSON(object: any): WatchRequest;
    toJSON(message: WatchRequest): unknown;
    create(base?: DeepPartial<WatchRequest>): WatchRequest;
    fromPartial(object: DeepPartial<WatchRequest>): WatchRequest;
};
export declare const BitfieldRequest: {
    $type: "devvit.plugin.redis.BitfieldRequest";
    encode(message: BitfieldRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): BitfieldRequest;
    fromJSON(object: any): BitfieldRequest;
    toJSON(message: BitfieldRequest): unknown;
    create(base?: DeepPartial<BitfieldRequest>): BitfieldRequest;
    fromPartial(object: DeepPartial<BitfieldRequest>): BitfieldRequest;
};
export declare const BitfieldCommand: {
    $type: "devvit.plugin.redis.BitfieldCommand";
    encode(message: BitfieldCommand, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): BitfieldCommand;
    fromJSON(object: any): BitfieldCommand;
    toJSON(message: BitfieldCommand): unknown;
    create(base?: DeepPartial<BitfieldCommand>): BitfieldCommand;
    fromPartial(object: DeepPartial<BitfieldCommand>): BitfieldCommand;
};
export declare const BitfieldGet: {
    $type: "devvit.plugin.redis.BitfieldGet";
    encode(message: BitfieldGet, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): BitfieldGet;
    fromJSON(object: any): BitfieldGet;
    toJSON(message: BitfieldGet): unknown;
    create(base?: DeepPartial<BitfieldGet>): BitfieldGet;
    fromPartial(object: DeepPartial<BitfieldGet>): BitfieldGet;
};
export declare const BitfieldSet: {
    $type: "devvit.plugin.redis.BitfieldSet";
    encode(message: BitfieldSet, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): BitfieldSet;
    fromJSON(object: any): BitfieldSet;
    toJSON(message: BitfieldSet): unknown;
    create(base?: DeepPartial<BitfieldSet>): BitfieldSet;
    fromPartial(object: DeepPartial<BitfieldSet>): BitfieldSet;
};
export declare const BitfieldIncrBy: {
    $type: "devvit.plugin.redis.BitfieldIncrBy";
    encode(message: BitfieldIncrBy, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): BitfieldIncrBy;
    fromJSON(object: any): BitfieldIncrBy;
    toJSON(message: BitfieldIncrBy): unknown;
    create(base?: DeepPartial<BitfieldIncrBy>): BitfieldIncrBy;
    fromPartial(object: DeepPartial<BitfieldIncrBy>): BitfieldIncrBy;
};
export declare const BitfieldOverflow: {
    $type: "devvit.plugin.redis.BitfieldOverflow";
    encode(message: BitfieldOverflow, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): BitfieldOverflow;
    fromJSON(object: any): BitfieldOverflow;
    toJSON(message: BitfieldOverflow): unknown;
    create(base?: DeepPartial<BitfieldOverflow>): BitfieldOverflow;
    fromPartial(object: DeepPartial<BitfieldOverflow>): BitfieldOverflow;
};
export declare const BitfieldResponse: {
    $type: "devvit.plugin.redis.BitfieldResponse";
    encode(message: BitfieldResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): BitfieldResponse;
    fromJSON(object: any): BitfieldResponse;
    toJSON(message: BitfieldResponse): unknown;
    create(base?: DeepPartial<BitfieldResponse>): BitfieldResponse;
    fromPartial(object: DeepPartial<BitfieldResponse>): BitfieldResponse;
};
export declare const HSetNXRequest: {
    $type: "devvit.plugin.redis.HSetNXRequest";
    encode(message: HSetNXRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): HSetNXRequest;
    fromJSON(object: any): HSetNXRequest;
    toJSON(message: HSetNXRequest): unknown;
    create(base?: DeepPartial<HSetNXRequest>): HSetNXRequest;
    fromPartial(object: DeepPartial<HSetNXRequest>): HSetNXRequest;
};
export declare const RenameRequest: {
    $type: "devvit.plugin.redis.RenameRequest";
    encode(message: RenameRequest, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): RenameRequest;
    fromJSON(object: any): RenameRequest;
    toJSON(message: RenameRequest): unknown;
    create(base?: DeepPartial<RenameRequest>): RenameRequest;
    fromPartial(object: DeepPartial<RenameRequest>): RenameRequest;
};
export declare const RenameResponse: {
    $type: "devvit.plugin.redis.RenameResponse";
    encode(message: RenameResponse, writer?: _m0.Writer): _m0.Writer;
    decode(input: _m0.Reader | Uint8Array, length?: number): RenameResponse;
    fromJSON(object: any): RenameResponse;
    toJSON(message: RenameResponse): unknown;
    create(base?: DeepPartial<RenameResponse>): RenameResponse;
    fromPartial(object: DeepPartial<RenameResponse>): RenameResponse;
};
/**
 * This should match as closely as reasonable to redis's names, arguments, etc.
 *
 * DO NOT CHANGE Redis names.  It's DEL, not DELETE, no matter your preferences.
 *
 * One catch here is that this interface mediates transactions, without exposing
 * the details of connection management.  Therefore, if you're doing an operation
 * in a transaction, two things are different:
 *
 *    1. You should provide a transaction id in your request.
 *    2. You should ignore the response (as it should be a zero value)
 *
 * The Typescript Redis client wrapper is smart enough to handle transactions
 * with a nice chaining API on your behalf.
 */
export interface RedisAPI {
    /** Simple Key-Value operations */
    Get(request: KeyRequest, metadata?: Metadata): Promise<StringValue>;
    GetBytes(request: KeyRequest, metadata?: Metadata): Promise<BytesValue>;
    Set(request: SetRequest, metadata?: Metadata): Promise<StringValue>;
    Exists(request: KeysRequest, metadata?: Metadata): Promise<ExistsResponse>;
    Del(request: KeysRequest, metadata?: Metadata): Promise<Int64Value>;
    Type(request: KeyRequest, metadata?: Metadata): Promise<StringValue>;
    Rename(request: RenameRequest, metadata?: Metadata): Promise<RenameResponse>;
    /** Number operations */
    IncrBy(request: IncrByRequest, metadata?: Metadata): Promise<Int64Value>;
    /** Redis Hash operations */
    HSet(request: HSetRequest, metadata?: Metadata): Promise<Int64Value>;
    HGet(request: HGetRequest, metadata?: Metadata): Promise<StringValue>;
    HMGet(request: HMGetRequest, metadata?: Metadata): Promise<RedisValues>;
    HGetAll(request: KeyRequest, metadata?: Metadata): Promise<RedisFieldValues>;
    HDel(request: HDelRequest, metadata?: Metadata): Promise<Int64Value>;
    HScan(request: HScanRequest, metadata?: Metadata): Promise<HScanResponse>;
    HKeys(request: KeyRequest, metadata?: Metadata): Promise<KeysResponse>;
    HIncrBy(request: HIncrByRequest, metadata?: Metadata): Promise<Int64Value>;
    HLen(request: KeyRequest, metadata?: Metadata): Promise<Int64Value>;
    HSetNX(request: HSetNXRequest, metadata?: Metadata): Promise<HSetNXResponse>;
    /** Transactions */
    Multi(request: TransactionId, metadata?: Metadata): Promise<Empty>;
    Exec(request: TransactionId, metadata?: Metadata): Promise<TransactionResponses>;
    Discard(request: TransactionId, metadata?: Metadata): Promise<Empty>;
    Watch(request: WatchRequest, metadata?: Metadata): Promise<TransactionId>;
    Unwatch(request: TransactionId, metadata?: Metadata): Promise<Empty>;
    /** String operations */
    GetRange(request: KeyRangeRequest, metadata?: Metadata): Promise<StringValue>;
    SetRange(request: SetRangeRequest, metadata?: Metadata): Promise<Int64Value>;
    Strlen(request: KeyRequest, metadata?: Metadata): Promise<Int64Value>;
    /** Batch Key-Value operations */
    MGet(request: KeysRequest, metadata?: Metadata): Promise<RedisValues>;
    MSet(request: KeyValuesRequest, metadata?: Metadata): Promise<Empty>;
    /** Key expiration */
    Expire(request: ExpireRequest, metadata?: Metadata): Promise<Empty>;
    ExpireTime(request: KeyRequest, metadata?: Metadata): Promise<Int64Value>;
    /** Sorted sets */
    ZAdd(request: ZAddRequest, metadata?: Metadata): Promise<Int64Value>;
    ZCard(request: KeyRequest, metadata?: Metadata): Promise<Int64Value>;
    ZRange(request: ZRangeRequest, metadata?: Metadata): Promise<ZMembers>;
    ZRem(request: ZRemRequest, metadata?: Metadata): Promise<Int64Value>;
    ZRemRangeByLex(request: ZRemRangeByLexRequest, metadata?: Metadata): Promise<Int64Value>;
    ZRemRangeByRank(request: ZRemRangeByRankRequest, metadata?: Metadata): Promise<Int64Value>;
    ZRemRangeByScore(request: ZRemRangeByScoreRequest, metadata?: Metadata): Promise<Int64Value>;
    ZScore(request: ZScoreRequest, metadata?: Metadata): Promise<DoubleValue>;
    ZRank(request: ZRankRequest, metadata?: Metadata): Promise<Int64Value>;
    ZIncrBy(request: ZIncrByRequest, metadata?: Metadata): Promise<DoubleValue>;
    ZScan(request: ZScanRequest, metadata?: Metadata): Promise<ZScanResponse>;
    /** Bitfield */
    Bitfield(request: BitfieldRequest, metadata?: Metadata): Promise<BitfieldResponse>;
}
export declare const RedisAPIServiceName = "devvit.plugin.redis.RedisAPI";
export declare class RedisAPIClientImpl implements RedisAPI {
    private readonly rpc;
    private readonly service;
    constructor(rpc: Rpc, opts?: {
        service?: string;
    });
    Get(request: KeyRequest, metadata?: Metadata): Promise<StringValue>;
    GetBytes(request: KeyRequest, metadata?: Metadata): Promise<BytesValue>;
    Set(request: SetRequest, metadata?: Metadata): Promise<StringValue>;
    Exists(request: KeysRequest, metadata?: Metadata): Promise<ExistsResponse>;
    Del(request: KeysRequest, metadata?: Metadata): Promise<Int64Value>;
    Type(request: KeyRequest, metadata?: Metadata): Promise<StringValue>;
    Rename(request: RenameRequest, metadata?: Metadata): Promise<RenameResponse>;
    IncrBy(request: IncrByRequest, metadata?: Metadata): Promise<Int64Value>;
    HSet(request: HSetRequest, metadata?: Metadata): Promise<Int64Value>;
    HGet(request: HGetRequest, metadata?: Metadata): Promise<StringValue>;
    HMGet(request: HMGetRequest, metadata?: Metadata): Promise<RedisValues>;
    HGetAll(request: KeyRequest, metadata?: Metadata): Promise<RedisFieldValues>;
    HDel(request: HDelRequest, metadata?: Metadata): Promise<Int64Value>;
    HScan(request: HScanRequest, metadata?: Metadata): Promise<HScanResponse>;
    HKeys(request: KeyRequest, metadata?: Metadata): Promise<KeysResponse>;
    HIncrBy(request: HIncrByRequest, metadata?: Metadata): Promise<Int64Value>;
    HLen(request: KeyRequest, metadata?: Metadata): Promise<Int64Value>;
    HSetNX(request: HSetNXRequest, metadata?: Metadata): Promise<HSetNXResponse>;
    Multi(request: TransactionId, metadata?: Metadata): Promise<Empty>;
    Exec(request: TransactionId, metadata?: Metadata): Promise<TransactionResponses>;
    Discard(request: TransactionId, metadata?: Metadata): Promise<Empty>;
    Watch(request: WatchRequest, metadata?: Metadata): Promise<TransactionId>;
    Unwatch(request: TransactionId, metadata?: Metadata): Promise<Empty>;
    GetRange(request: KeyRangeRequest, metadata?: Metadata): Promise<StringValue>;
    SetRange(request: SetRangeRequest, metadata?: Metadata): Promise<Int64Value>;
    Strlen(request: KeyRequest, metadata?: Metadata): Promise<Int64Value>;
    MGet(request: KeysRequest, metadata?: Metadata): Promise<RedisValues>;
    MSet(request: KeyValuesRequest, metadata?: Metadata): Promise<Empty>;
    Expire(request: ExpireRequest, metadata?: Metadata): Promise<Empty>;
    ExpireTime(request: KeyRequest, metadata?: Metadata): Promise<Int64Value>;
    ZAdd(request: ZAddRequest, metadata?: Metadata): Promise<Int64Value>;
    ZCard(request: KeyRequest, metadata?: Metadata): Promise<Int64Value>;
    ZRange(request: ZRangeRequest, metadata?: Metadata): Promise<ZMembers>;
    ZRem(request: ZRemRequest, metadata?: Metadata): Promise<Int64Value>;
    ZRemRangeByLex(request: ZRemRangeByLexRequest, metadata?: Metadata): Promise<Int64Value>;
    ZRemRangeByRank(request: ZRemRangeByRankRequest, metadata?: Metadata): Promise<Int64Value>;
    ZRemRangeByScore(request: ZRemRangeByScoreRequest, metadata?: Metadata): Promise<Int64Value>;
    ZScore(request: ZScoreRequest, metadata?: Metadata): Promise<DoubleValue>;
    ZRank(request: ZRankRequest, metadata?: Metadata): Promise<Int64Value>;
    ZIncrBy(request: ZIncrByRequest, metadata?: Metadata): Promise<DoubleValue>;
    ZScan(request: ZScanRequest, metadata?: Metadata): Promise<ZScanResponse>;
    Bitfield(request: BitfieldRequest, metadata?: Metadata): Promise<BitfieldResponse>;
}
/**
 * This should match as closely as reasonable to redis's names, arguments, etc.
 *
 * DO NOT CHANGE Redis names.  It's DEL, not DELETE, no matter your preferences.
 *
 * One catch here is that this interface mediates transactions, without exposing
 * the details of connection management.  Therefore, if you're doing an operation
 * in a transaction, two things are different:
 *
 *    1. You should provide a transaction id in your request.
 *    2. You should ignore the response (as it should be a zero value)
 *
 * The Typescript Redis client wrapper is smart enough to handle transactions
 * with a nice chaining API on your behalf.
 */
export type RedisAPIDefinition = typeof RedisAPIDefinition;
export declare const RedisAPIDefinition: {
    readonly name: "RedisAPI";
    readonly fullName: "devvit.plugin.redis.RedisAPI";
    readonly methods: {
        /** Simple Key-Value operations */
        readonly get: {
            readonly name: "Get";
            readonly requestType: {
                $type: "devvit.plugin.redis.KeyRequest";
                encode(message: KeyRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): KeyRequest;
                fromJSON(object: any): KeyRequest;
                toJSON(message: KeyRequest): unknown;
                create(base?: DeepPartial<KeyRequest>): KeyRequest;
                fromPartial(object: DeepPartial<KeyRequest>): KeyRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.StringValue";
                encode(message: StringValue, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): StringValue;
                fromJSON(object: any): StringValue;
                toJSON(message: StringValue): unknown;
                create(base?: {
                    value?: string;
                }): StringValue;
                fromPartial(object: {
                    value?: string;
                }): StringValue;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly getBytes: {
            readonly name: "GetBytes";
            readonly requestType: {
                $type: "devvit.plugin.redis.KeyRequest";
                encode(message: KeyRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): KeyRequest;
                fromJSON(object: any): KeyRequest;
                toJSON(message: KeyRequest): unknown;
                create(base?: DeepPartial<KeyRequest>): KeyRequest;
                fromPartial(object: DeepPartial<KeyRequest>): KeyRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.BytesValue";
                encode(message: BytesValue, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): BytesValue;
                fromJSON(object: any): BytesValue;
                toJSON(message: BytesValue): unknown;
                create(base?: {
                    value?: Uint8Array;
                }): BytesValue;
                fromPartial(object: {
                    value?: Uint8Array;
                }): BytesValue;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly set: {
            readonly name: "Set";
            readonly requestType: {
                $type: "devvit.plugin.redis.SetRequest";
                encode(message: SetRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): SetRequest;
                fromJSON(object: any): SetRequest;
                toJSON(message: SetRequest): unknown;
                create(base?: DeepPartial<SetRequest>): SetRequest;
                fromPartial(object: DeepPartial<SetRequest>): SetRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.StringValue";
                encode(message: StringValue, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): StringValue;
                fromJSON(object: any): StringValue;
                toJSON(message: StringValue): unknown;
                create(base?: {
                    value?: string;
                }): StringValue;
                fromPartial(object: {
                    value?: string;
                }): StringValue;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly exists: {
            readonly name: "Exists";
            readonly requestType: {
                $type: "devvit.plugin.redis.KeysRequest";
                encode(message: KeysRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): KeysRequest;
                fromJSON(object: any): KeysRequest;
                toJSON(message: KeysRequest): unknown;
                create(base?: DeepPartial<KeysRequest>): KeysRequest;
                fromPartial(object: DeepPartial<KeysRequest>): KeysRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "devvit.plugin.redis.ExistsResponse";
                encode(message: ExistsResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): ExistsResponse;
                fromJSON(object: any): ExistsResponse;
                toJSON(message: ExistsResponse): unknown;
                create(base?: DeepPartial<ExistsResponse>): ExistsResponse;
                fromPartial(object: DeepPartial<ExistsResponse>): ExistsResponse;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly del: {
            readonly name: "Del";
            readonly requestType: {
                $type: "devvit.plugin.redis.KeysRequest";
                encode(message: KeysRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): KeysRequest;
                fromJSON(object: any): KeysRequest;
                toJSON(message: KeysRequest): unknown;
                create(base?: DeepPartial<KeysRequest>): KeysRequest;
                fromPartial(object: DeepPartial<KeysRequest>): KeysRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Int64Value";
                encode(message: Int64Value, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Int64Value;
                fromJSON(object: any): Int64Value;
                toJSON(message: Int64Value): unknown;
                create(base?: {
                    value?: number;
                }): Int64Value;
                fromPartial(object: {
                    value?: number;
                }): Int64Value;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly type: {
            readonly name: "Type";
            readonly requestType: {
                $type: "devvit.plugin.redis.KeyRequest";
                encode(message: KeyRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): KeyRequest;
                fromJSON(object: any): KeyRequest;
                toJSON(message: KeyRequest): unknown;
                create(base?: DeepPartial<KeyRequest>): KeyRequest;
                fromPartial(object: DeepPartial<KeyRequest>): KeyRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.StringValue";
                encode(message: StringValue, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): StringValue;
                fromJSON(object: any): StringValue;
                toJSON(message: StringValue): unknown;
                create(base?: {
                    value?: string;
                }): StringValue;
                fromPartial(object: {
                    value?: string;
                }): StringValue;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly rename: {
            readonly name: "Rename";
            readonly requestType: {
                $type: "devvit.plugin.redis.RenameRequest";
                encode(message: RenameRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): RenameRequest;
                fromJSON(object: any): RenameRequest;
                toJSON(message: RenameRequest): unknown;
                create(base?: DeepPartial<RenameRequest>): RenameRequest;
                fromPartial(object: DeepPartial<RenameRequest>): RenameRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "devvit.plugin.redis.RenameResponse";
                encode(message: RenameResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): RenameResponse;
                fromJSON(object: any): RenameResponse;
                toJSON(message: RenameResponse): unknown;
                create(base?: DeepPartial<RenameResponse>): RenameResponse;
                fromPartial(object: DeepPartial<RenameResponse>): RenameResponse;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        /** Number operations */
        readonly incrBy: {
            readonly name: "IncrBy";
            readonly requestType: {
                $type: "devvit.plugin.redis.IncrByRequest";
                encode(message: IncrByRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): IncrByRequest;
                fromJSON(object: any): IncrByRequest;
                toJSON(message: IncrByRequest): unknown;
                create(base?: DeepPartial<IncrByRequest>): IncrByRequest;
                fromPartial(object: DeepPartial<IncrByRequest>): IncrByRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Int64Value";
                encode(message: Int64Value, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Int64Value;
                fromJSON(object: any): Int64Value;
                toJSON(message: Int64Value): unknown;
                create(base?: {
                    value?: number;
                }): Int64Value;
                fromPartial(object: {
                    value?: number;
                }): Int64Value;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        /** Redis Hash operations */
        readonly hSet: {
            readonly name: "HSet";
            readonly requestType: {
                $type: "devvit.plugin.redis.HSetRequest";
                encode(message: HSetRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): HSetRequest;
                fromJSON(object: any): HSetRequest;
                toJSON(message: HSetRequest): unknown;
                create(base?: DeepPartial<HSetRequest>): HSetRequest;
                fromPartial(object: DeepPartial<HSetRequest>): HSetRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Int64Value";
                encode(message: Int64Value, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Int64Value;
                fromJSON(object: any): Int64Value;
                toJSON(message: Int64Value): unknown;
                create(base?: {
                    value?: number;
                }): Int64Value;
                fromPartial(object: {
                    value?: number;
                }): Int64Value;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly hGet: {
            readonly name: "HGet";
            readonly requestType: {
                $type: "devvit.plugin.redis.HGetRequest";
                encode(message: HGetRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): HGetRequest;
                fromJSON(object: any): HGetRequest;
                toJSON(message: HGetRequest): unknown;
                create(base?: DeepPartial<HGetRequest>): HGetRequest;
                fromPartial(object: DeepPartial<HGetRequest>): HGetRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.StringValue";
                encode(message: StringValue, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): StringValue;
                fromJSON(object: any): StringValue;
                toJSON(message: StringValue): unknown;
                create(base?: {
                    value?: string;
                }): StringValue;
                fromPartial(object: {
                    value?: string;
                }): StringValue;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly hMGet: {
            readonly name: "HMGet";
            readonly requestType: {
                $type: "devvit.plugin.redis.HMGetRequest";
                encode(message: HMGetRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): HMGetRequest;
                fromJSON(object: any): HMGetRequest;
                toJSON(message: HMGetRequest): unknown;
                create(base?: DeepPartial<HMGetRequest>): HMGetRequest;
                fromPartial(object: DeepPartial<HMGetRequest>): HMGetRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "devvit.plugin.redis.RedisValues";
                encode(message: RedisValues, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): RedisValues;
                fromJSON(object: any): RedisValues;
                toJSON(message: RedisValues): unknown;
                create(base?: DeepPartial<RedisValues>): RedisValues;
                fromPartial(object: DeepPartial<RedisValues>): RedisValues;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly hGetAll: {
            readonly name: "HGetAll";
            readonly requestType: {
                $type: "devvit.plugin.redis.KeyRequest";
                encode(message: KeyRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): KeyRequest;
                fromJSON(object: any): KeyRequest;
                toJSON(message: KeyRequest): unknown;
                create(base?: DeepPartial<KeyRequest>): KeyRequest;
                fromPartial(object: DeepPartial<KeyRequest>): KeyRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "devvit.plugin.redis.RedisFieldValues";
                encode(message: RedisFieldValues, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): RedisFieldValues;
                fromJSON(object: any): RedisFieldValues;
                toJSON(message: RedisFieldValues): unknown;
                create(base?: DeepPartial<RedisFieldValues>): RedisFieldValues;
                fromPartial(object: DeepPartial<RedisFieldValues>): RedisFieldValues;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly hDel: {
            readonly name: "HDel";
            readonly requestType: {
                $type: "devvit.plugin.redis.HDelRequest";
                encode(message: HDelRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): HDelRequest;
                fromJSON(object: any): HDelRequest;
                toJSON(message: HDelRequest): unknown;
                create(base?: DeepPartial<HDelRequest>): HDelRequest;
                fromPartial(object: DeepPartial<HDelRequest>): HDelRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Int64Value";
                encode(message: Int64Value, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Int64Value;
                fromJSON(object: any): Int64Value;
                toJSON(message: Int64Value): unknown;
                create(base?: {
                    value?: number;
                }): Int64Value;
                fromPartial(object: {
                    value?: number;
                }): Int64Value;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly hScan: {
            readonly name: "HScan";
            readonly requestType: {
                $type: "devvit.plugin.redis.HScanRequest";
                encode(message: HScanRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): HScanRequest;
                fromJSON(object: any): HScanRequest;
                toJSON(message: HScanRequest): unknown;
                create(base?: DeepPartial<HScanRequest>): HScanRequest;
                fromPartial(object: DeepPartial<HScanRequest>): HScanRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "devvit.plugin.redis.HScanResponse";
                encode(message: HScanResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): HScanResponse;
                fromJSON(object: any): HScanResponse;
                toJSON(message: HScanResponse): unknown;
                create(base?: DeepPartial<HScanResponse>): HScanResponse;
                fromPartial(object: DeepPartial<HScanResponse>): HScanResponse;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly hKeys: {
            readonly name: "HKeys";
            readonly requestType: {
                $type: "devvit.plugin.redis.KeyRequest";
                encode(message: KeyRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): KeyRequest;
                fromJSON(object: any): KeyRequest;
                toJSON(message: KeyRequest): unknown;
                create(base?: DeepPartial<KeyRequest>): KeyRequest;
                fromPartial(object: DeepPartial<KeyRequest>): KeyRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "devvit.plugin.redis.KeysResponse";
                encode(message: KeysResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): KeysResponse;
                fromJSON(object: any): KeysResponse;
                toJSON(message: KeysResponse): unknown;
                create(base?: DeepPartial<KeysResponse>): KeysResponse;
                fromPartial(object: DeepPartial<KeysResponse>): KeysResponse;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly hIncrBy: {
            readonly name: "HIncrBy";
            readonly requestType: {
                $type: "devvit.plugin.redis.HIncrByRequest";
                encode(message: HIncrByRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): HIncrByRequest;
                fromJSON(object: any): HIncrByRequest;
                toJSON(message: HIncrByRequest): unknown;
                create(base?: DeepPartial<HIncrByRequest>): HIncrByRequest;
                fromPartial(object: DeepPartial<HIncrByRequest>): HIncrByRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Int64Value";
                encode(message: Int64Value, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Int64Value;
                fromJSON(object: any): Int64Value;
                toJSON(message: Int64Value): unknown;
                create(base?: {
                    value?: number;
                }): Int64Value;
                fromPartial(object: {
                    value?: number;
                }): Int64Value;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly hLen: {
            readonly name: "HLen";
            readonly requestType: {
                $type: "devvit.plugin.redis.KeyRequest";
                encode(message: KeyRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): KeyRequest;
                fromJSON(object: any): KeyRequest;
                toJSON(message: KeyRequest): unknown;
                create(base?: DeepPartial<KeyRequest>): KeyRequest;
                fromPartial(object: DeepPartial<KeyRequest>): KeyRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Int64Value";
                encode(message: Int64Value, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Int64Value;
                fromJSON(object: any): Int64Value;
                toJSON(message: Int64Value): unknown;
                create(base?: {
                    value?: number;
                }): Int64Value;
                fromPartial(object: {
                    value?: number;
                }): Int64Value;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly hSetNX: {
            readonly name: "HSetNX";
            readonly requestType: {
                $type: "devvit.plugin.redis.HSetNXRequest";
                encode(message: HSetNXRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): HSetNXRequest;
                fromJSON(object: any): HSetNXRequest;
                toJSON(message: HSetNXRequest): unknown;
                create(base?: DeepPartial<HSetNXRequest>): HSetNXRequest;
                fromPartial(object: DeepPartial<HSetNXRequest>): HSetNXRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "devvit.plugin.redis.HSetNXResponse";
                encode(message: HSetNXResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): HSetNXResponse;
                fromJSON(object: any): HSetNXResponse;
                toJSON(message: HSetNXResponse): unknown;
                create(base?: DeepPartial<HSetNXResponse>): HSetNXResponse;
                fromPartial(object: DeepPartial<HSetNXResponse>): HSetNXResponse;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        /** Transactions */
        readonly multi: {
            readonly name: "Multi";
            readonly requestType: {
                $type: "devvit.plugin.redis.TransactionId";
                encode(message: TransactionId, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): TransactionId;
                fromJSON(object: any): TransactionId;
                toJSON(message: TransactionId): unknown;
                create(base?: DeepPartial<TransactionId>): TransactionId;
                fromPartial(object: DeepPartial<TransactionId>): TransactionId;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Empty";
                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Empty;
                fromJSON(_: any): Empty;
                toJSON(_: Empty): unknown;
                create(base?: {}): Empty;
                fromPartial(_: {}): Empty;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly exec: {
            readonly name: "Exec";
            readonly requestType: {
                $type: "devvit.plugin.redis.TransactionId";
                encode(message: TransactionId, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): TransactionId;
                fromJSON(object: any): TransactionId;
                toJSON(message: TransactionId): unknown;
                create(base?: DeepPartial<TransactionId>): TransactionId;
                fromPartial(object: DeepPartial<TransactionId>): TransactionId;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "devvit.plugin.redis.TransactionResponses";
                encode(message: TransactionResponses, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): TransactionResponses;
                fromJSON(object: any): TransactionResponses;
                toJSON(message: TransactionResponses): unknown;
                create(base?: DeepPartial<TransactionResponses>): TransactionResponses;
                fromPartial(object: DeepPartial<TransactionResponses>): TransactionResponses;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly discard: {
            readonly name: "Discard";
            readonly requestType: {
                $type: "devvit.plugin.redis.TransactionId";
                encode(message: TransactionId, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): TransactionId;
                fromJSON(object: any): TransactionId;
                toJSON(message: TransactionId): unknown;
                create(base?: DeepPartial<TransactionId>): TransactionId;
                fromPartial(object: DeepPartial<TransactionId>): TransactionId;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Empty";
                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Empty;
                fromJSON(_: any): Empty;
                toJSON(_: Empty): unknown;
                create(base?: {}): Empty;
                fromPartial(_: {}): Empty;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly watch: {
            readonly name: "Watch";
            readonly requestType: {
                $type: "devvit.plugin.redis.WatchRequest";
                encode(message: WatchRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): WatchRequest;
                fromJSON(object: any): WatchRequest;
                toJSON(message: WatchRequest): unknown;
                create(base?: DeepPartial<WatchRequest>): WatchRequest;
                fromPartial(object: DeepPartial<WatchRequest>): WatchRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "devvit.plugin.redis.TransactionId";
                encode(message: TransactionId, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): TransactionId;
                fromJSON(object: any): TransactionId;
                toJSON(message: TransactionId): unknown;
                create(base?: DeepPartial<TransactionId>): TransactionId;
                fromPartial(object: DeepPartial<TransactionId>): TransactionId;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly unwatch: {
            readonly name: "Unwatch";
            readonly requestType: {
                $type: "devvit.plugin.redis.TransactionId";
                encode(message: TransactionId, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): TransactionId;
                fromJSON(object: any): TransactionId;
                toJSON(message: TransactionId): unknown;
                create(base?: DeepPartial<TransactionId>): TransactionId;
                fromPartial(object: DeepPartial<TransactionId>): TransactionId;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Empty";
                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Empty;
                fromJSON(_: any): Empty;
                toJSON(_: Empty): unknown;
                create(base?: {}): Empty;
                fromPartial(_: {}): Empty;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        /** String operations */
        readonly getRange: {
            readonly name: "GetRange";
            readonly requestType: {
                $type: "devvit.plugin.redis.KeyRangeRequest";
                encode(message: KeyRangeRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): KeyRangeRequest;
                fromJSON(object: any): KeyRangeRequest;
                toJSON(message: KeyRangeRequest): unknown;
                create(base?: DeepPartial<KeyRangeRequest>): KeyRangeRequest;
                fromPartial(object: DeepPartial<KeyRangeRequest>): KeyRangeRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.StringValue";
                encode(message: StringValue, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): StringValue;
                fromJSON(object: any): StringValue;
                toJSON(message: StringValue): unknown;
                create(base?: {
                    value?: string;
                }): StringValue;
                fromPartial(object: {
                    value?: string;
                }): StringValue;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly setRange: {
            readonly name: "SetRange";
            readonly requestType: {
                $type: "devvit.plugin.redis.SetRangeRequest";
                encode(message: SetRangeRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): SetRangeRequest;
                fromJSON(object: any): SetRangeRequest;
                toJSON(message: SetRangeRequest): unknown;
                create(base?: DeepPartial<SetRangeRequest>): SetRangeRequest;
                fromPartial(object: DeepPartial<SetRangeRequest>): SetRangeRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Int64Value";
                encode(message: Int64Value, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Int64Value;
                fromJSON(object: any): Int64Value;
                toJSON(message: Int64Value): unknown;
                create(base?: {
                    value?: number;
                }): Int64Value;
                fromPartial(object: {
                    value?: number;
                }): Int64Value;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly strlen: {
            readonly name: "Strlen";
            readonly requestType: {
                $type: "devvit.plugin.redis.KeyRequest";
                encode(message: KeyRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): KeyRequest;
                fromJSON(object: any): KeyRequest;
                toJSON(message: KeyRequest): unknown;
                create(base?: DeepPartial<KeyRequest>): KeyRequest;
                fromPartial(object: DeepPartial<KeyRequest>): KeyRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Int64Value";
                encode(message: Int64Value, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Int64Value;
                fromJSON(object: any): Int64Value;
                toJSON(message: Int64Value): unknown;
                create(base?: {
                    value?: number;
                }): Int64Value;
                fromPartial(object: {
                    value?: number;
                }): Int64Value;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        /** Batch Key-Value operations */
        readonly mGet: {
            readonly name: "MGet";
            readonly requestType: {
                $type: "devvit.plugin.redis.KeysRequest";
                encode(message: KeysRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): KeysRequest;
                fromJSON(object: any): KeysRequest;
                toJSON(message: KeysRequest): unknown;
                create(base?: DeepPartial<KeysRequest>): KeysRequest;
                fromPartial(object: DeepPartial<KeysRequest>): KeysRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "devvit.plugin.redis.RedisValues";
                encode(message: RedisValues, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): RedisValues;
                fromJSON(object: any): RedisValues;
                toJSON(message: RedisValues): unknown;
                create(base?: DeepPartial<RedisValues>): RedisValues;
                fromPartial(object: DeepPartial<RedisValues>): RedisValues;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly mSet: {
            readonly name: "MSet";
            readonly requestType: {
                $type: "devvit.plugin.redis.KeyValuesRequest";
                encode(message: KeyValuesRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): KeyValuesRequest;
                fromJSON(object: any): KeyValuesRequest;
                toJSON(message: KeyValuesRequest): unknown;
                create(base?: DeepPartial<KeyValuesRequest>): KeyValuesRequest;
                fromPartial(object: DeepPartial<KeyValuesRequest>): KeyValuesRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Empty";
                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Empty;
                fromJSON(_: any): Empty;
                toJSON(_: Empty): unknown;
                create(base?: {}): Empty;
                fromPartial(_: {}): Empty;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        /** Key expiration */
        readonly expire: {
            readonly name: "Expire";
            readonly requestType: {
                $type: "devvit.plugin.redis.ExpireRequest";
                encode(message: ExpireRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): ExpireRequest;
                fromJSON(object: any): ExpireRequest;
                toJSON(message: ExpireRequest): unknown;
                create(base?: DeepPartial<ExpireRequest>): ExpireRequest;
                fromPartial(object: DeepPartial<ExpireRequest>): ExpireRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Empty";
                encode(_: Empty, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Empty;
                fromJSON(_: any): Empty;
                toJSON(_: Empty): unknown;
                create(base?: {}): Empty;
                fromPartial(_: {}): Empty;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly expireTime: {
            readonly name: "ExpireTime";
            readonly requestType: {
                $type: "devvit.plugin.redis.KeyRequest";
                encode(message: KeyRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): KeyRequest;
                fromJSON(object: any): KeyRequest;
                toJSON(message: KeyRequest): unknown;
                create(base?: DeepPartial<KeyRequest>): KeyRequest;
                fromPartial(object: DeepPartial<KeyRequest>): KeyRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Int64Value";
                encode(message: Int64Value, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Int64Value;
                fromJSON(object: any): Int64Value;
                toJSON(message: Int64Value): unknown;
                create(base?: {
                    value?: number;
                }): Int64Value;
                fromPartial(object: {
                    value?: number;
                }): Int64Value;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        /** Sorted sets */
        readonly zAdd: {
            readonly name: "ZAdd";
            readonly requestType: {
                $type: "devvit.plugin.redis.ZAddRequest";
                encode(message: ZAddRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): ZAddRequest;
                fromJSON(object: any): ZAddRequest;
                toJSON(message: ZAddRequest): unknown;
                create(base?: DeepPartial<ZAddRequest>): ZAddRequest;
                fromPartial(object: DeepPartial<ZAddRequest>): ZAddRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Int64Value";
                encode(message: Int64Value, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Int64Value;
                fromJSON(object: any): Int64Value;
                toJSON(message: Int64Value): unknown;
                create(base?: {
                    value?: number;
                }): Int64Value;
                fromPartial(object: {
                    value?: number;
                }): Int64Value;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly zCard: {
            readonly name: "ZCard";
            readonly requestType: {
                $type: "devvit.plugin.redis.KeyRequest";
                encode(message: KeyRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): KeyRequest;
                fromJSON(object: any): KeyRequest;
                toJSON(message: KeyRequest): unknown;
                create(base?: DeepPartial<KeyRequest>): KeyRequest;
                fromPartial(object: DeepPartial<KeyRequest>): KeyRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Int64Value";
                encode(message: Int64Value, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Int64Value;
                fromJSON(object: any): Int64Value;
                toJSON(message: Int64Value): unknown;
                create(base?: {
                    value?: number;
                }): Int64Value;
                fromPartial(object: {
                    value?: number;
                }): Int64Value;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly zRange: {
            readonly name: "ZRange";
            readonly requestType: {
                $type: "devvit.plugin.redis.ZRangeRequest";
                encode(message: ZRangeRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): ZRangeRequest;
                fromJSON(object: any): ZRangeRequest;
                toJSON(message: ZRangeRequest): unknown;
                create(base?: DeepPartial<ZRangeRequest>): ZRangeRequest;
                fromPartial(object: DeepPartial<ZRangeRequest>): ZRangeRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "devvit.plugin.redis.ZMembers";
                encode(message: ZMembers, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): ZMembers;
                fromJSON(object: any): ZMembers;
                toJSON(message: ZMembers): unknown;
                create(base?: DeepPartial<ZMembers>): ZMembers;
                fromPartial(object: DeepPartial<ZMembers>): ZMembers;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly zRem: {
            readonly name: "ZRem";
            readonly requestType: {
                $type: "devvit.plugin.redis.ZRemRequest";
                encode(message: ZRemRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): ZRemRequest;
                fromJSON(object: any): ZRemRequest;
                toJSON(message: ZRemRequest): unknown;
                create(base?: DeepPartial<ZRemRequest>): ZRemRequest;
                fromPartial(object: DeepPartial<ZRemRequest>): ZRemRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Int64Value";
                encode(message: Int64Value, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Int64Value;
                fromJSON(object: any): Int64Value;
                toJSON(message: Int64Value): unknown;
                create(base?: {
                    value?: number;
                }): Int64Value;
                fromPartial(object: {
                    value?: number;
                }): Int64Value;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly zRemRangeByLex: {
            readonly name: "ZRemRangeByLex";
            readonly requestType: {
                $type: "devvit.plugin.redis.ZRemRangeByLexRequest";
                encode(message: ZRemRangeByLexRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): ZRemRangeByLexRequest;
                fromJSON(object: any): ZRemRangeByLexRequest;
                toJSON(message: ZRemRangeByLexRequest): unknown;
                create(base?: DeepPartial<ZRemRangeByLexRequest>): ZRemRangeByLexRequest;
                fromPartial(object: DeepPartial<ZRemRangeByLexRequest>): ZRemRangeByLexRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Int64Value";
                encode(message: Int64Value, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Int64Value;
                fromJSON(object: any): Int64Value;
                toJSON(message: Int64Value): unknown;
                create(base?: {
                    value?: number;
                }): Int64Value;
                fromPartial(object: {
                    value?: number;
                }): Int64Value;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly zRemRangeByRank: {
            readonly name: "ZRemRangeByRank";
            readonly requestType: {
                $type: "devvit.plugin.redis.ZRemRangeByRankRequest";
                encode(message: ZRemRangeByRankRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): ZRemRangeByRankRequest;
                fromJSON(object: any): ZRemRangeByRankRequest;
                toJSON(message: ZRemRangeByRankRequest): unknown;
                create(base?: DeepPartial<ZRemRangeByRankRequest>): ZRemRangeByRankRequest;
                fromPartial(object: DeepPartial<ZRemRangeByRankRequest>): ZRemRangeByRankRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Int64Value";
                encode(message: Int64Value, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Int64Value;
                fromJSON(object: any): Int64Value;
                toJSON(message: Int64Value): unknown;
                create(base?: {
                    value?: number;
                }): Int64Value;
                fromPartial(object: {
                    value?: number;
                }): Int64Value;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly zRemRangeByScore: {
            readonly name: "ZRemRangeByScore";
            readonly requestType: {
                $type: "devvit.plugin.redis.ZRemRangeByScoreRequest";
                encode(message: ZRemRangeByScoreRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): ZRemRangeByScoreRequest;
                fromJSON(object: any): ZRemRangeByScoreRequest;
                toJSON(message: ZRemRangeByScoreRequest): unknown;
                create(base?: DeepPartial<ZRemRangeByScoreRequest>): ZRemRangeByScoreRequest;
                fromPartial(object: DeepPartial<ZRemRangeByScoreRequest>): ZRemRangeByScoreRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Int64Value";
                encode(message: Int64Value, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Int64Value;
                fromJSON(object: any): Int64Value;
                toJSON(message: Int64Value): unknown;
                create(base?: {
                    value?: number;
                }): Int64Value;
                fromPartial(object: {
                    value?: number;
                }): Int64Value;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly zScore: {
            readonly name: "ZScore";
            readonly requestType: {
                $type: "devvit.plugin.redis.ZScoreRequest";
                encode(message: ZScoreRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): ZScoreRequest;
                fromJSON(object: any): ZScoreRequest;
                toJSON(message: ZScoreRequest): unknown;
                create(base?: DeepPartial<ZScoreRequest>): ZScoreRequest;
                fromPartial(object: DeepPartial<ZScoreRequest>): ZScoreRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.DoubleValue";
                encode(message: DoubleValue, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): DoubleValue;
                fromJSON(object: any): DoubleValue;
                toJSON(message: DoubleValue): unknown;
                create(base?: {
                    value?: number;
                }): DoubleValue;
                fromPartial(object: {
                    value?: number;
                }): DoubleValue;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly zRank: {
            readonly name: "ZRank";
            readonly requestType: {
                $type: "devvit.plugin.redis.ZRankRequest";
                encode(message: ZRankRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): ZRankRequest;
                fromJSON(object: any): ZRankRequest;
                toJSON(message: ZRankRequest): unknown;
                create(base?: DeepPartial<ZRankRequest>): ZRankRequest;
                fromPartial(object: DeepPartial<ZRankRequest>): ZRankRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.Int64Value";
                encode(message: Int64Value, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): Int64Value;
                fromJSON(object: any): Int64Value;
                toJSON(message: Int64Value): unknown;
                create(base?: {
                    value?: number;
                }): Int64Value;
                fromPartial(object: {
                    value?: number;
                }): Int64Value;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly zIncrBy: {
            readonly name: "ZIncrBy";
            readonly requestType: {
                $type: "devvit.plugin.redis.ZIncrByRequest";
                encode(message: ZIncrByRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): ZIncrByRequest;
                fromJSON(object: any): ZIncrByRequest;
                toJSON(message: ZIncrByRequest): unknown;
                create(base?: DeepPartial<ZIncrByRequest>): ZIncrByRequest;
                fromPartial(object: DeepPartial<ZIncrByRequest>): ZIncrByRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "google.protobuf.DoubleValue";
                encode(message: DoubleValue, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): DoubleValue;
                fromJSON(object: any): DoubleValue;
                toJSON(message: DoubleValue): unknown;
                create(base?: {
                    value?: number;
                }): DoubleValue;
                fromPartial(object: {
                    value?: number;
                }): DoubleValue;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        readonly zScan: {
            readonly name: "ZScan";
            readonly requestType: {
                $type: "devvit.plugin.redis.ZScanRequest";
                encode(message: ZScanRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): ZScanRequest;
                fromJSON(object: any): ZScanRequest;
                toJSON(message: ZScanRequest): unknown;
                create(base?: DeepPartial<ZScanRequest>): ZScanRequest;
                fromPartial(object: DeepPartial<ZScanRequest>): ZScanRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "devvit.plugin.redis.ZScanResponse";
                encode(message: ZScanResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): ZScanResponse;
                fromJSON(object: any): ZScanResponse;
                toJSON(message: ZScanResponse): unknown;
                create(base?: DeepPartial<ZScanResponse>): ZScanResponse;
                fromPartial(object: DeepPartial<ZScanResponse>): ZScanResponse;
            };
            readonly responseStream: false;
            readonly options: {};
        };
        /** Bitfield */
        readonly bitfield: {
            readonly name: "Bitfield";
            readonly requestType: {
                $type: "devvit.plugin.redis.BitfieldRequest";
                encode(message: BitfieldRequest, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): BitfieldRequest;
                fromJSON(object: any): BitfieldRequest;
                toJSON(message: BitfieldRequest): unknown;
                create(base?: DeepPartial<BitfieldRequest>): BitfieldRequest;
                fromPartial(object: DeepPartial<BitfieldRequest>): BitfieldRequest;
            };
            readonly requestStream: false;
            readonly responseType: {
                $type: "devvit.plugin.redis.BitfieldResponse";
                encode(message: BitfieldResponse, writer?: _m0.Writer): _m0.Writer;
                decode(input: _m0.Reader | Uint8Array, length?: number): BitfieldResponse;
                fromJSON(object: any): BitfieldResponse;
                toJSON(message: BitfieldResponse): unknown;
                create(base?: DeepPartial<BitfieldResponse>): BitfieldResponse;
                fromPartial(object: DeepPartial<BitfieldResponse>): BitfieldResponse;
            };
            readonly responseStream: false;
            readonly options: {};
        };
    };
};
interface Rpc {
    request(service: string, method: string, data: Uint8Array, metadata?: Metadata): Promise<Uint8Array>;
}
type Builtin = Date | Function | Uint8Array | string | number | boolean | undefined;
type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
    [K in keyof T]?: DeepPartial<T[K]>;
} : Partial<T>;
export {};
//# sourceMappingURL=redisapi.d.ts.map