/// <reference types="node" />
/**
 * Generated by the protoc-gen-ts.  DO NOT EDIT!
 * compiler version: 3.19.1
 * source: cachepubsub.proto
 * git: https://github.com/thesayyn/protoc-gen-ts */
import * as dependency_1 from "./common";
import * as pb_1 from "google-protobuf";
import * as grpc_1 from "@grpc/grpc-js";
export declare namespace cache_client.pubsub {
    export class _PublishRequest extends pb_1.Message {
        #private;
        constructor(data?: any[] | {
            cache_name?: string;
            topic?: string;
            value?: _TopicValue;
        });
        get cache_name(): string;
        set cache_name(value: string);
        get topic(): string;
        set topic(value: string);
        get value(): _TopicValue;
        set value(value: _TopicValue);
        get has_value(): boolean;
        static fromObject(data: {
            cache_name?: string;
            topic?: string;
            value?: ReturnType<typeof _TopicValue.prototype.toObject>;
        }): _PublishRequest;
        toObject(): {
            cache_name?: string;
            topic?: string;
            value?: ReturnType<typeof _TopicValue.prototype.toObject>;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _PublishRequest;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _PublishRequest;
    }
    export class _SubscriptionRequest extends pb_1.Message {
        #private;
        constructor(data?: any[] | {
            cache_name?: string;
            topic?: string;
            resume_at_topic_sequence_number?: number;
            sequence_page?: number;
        });
        get cache_name(): string;
        set cache_name(value: string);
        get topic(): string;
        set topic(value: string);
        get resume_at_topic_sequence_number(): number;
        set resume_at_topic_sequence_number(value: number);
        get sequence_page(): number;
        set sequence_page(value: number);
        static fromObject(data: {
            cache_name?: string;
            topic?: string;
            resume_at_topic_sequence_number?: number;
            sequence_page?: number;
        }): _SubscriptionRequest;
        toObject(): {
            cache_name?: string;
            topic?: string;
            resume_at_topic_sequence_number?: number;
            sequence_page?: number;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _SubscriptionRequest;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _SubscriptionRequest;
    }
    export class _SubscriptionItem extends pb_1.Message {
        #private;
        constructor(data?: any[] | ({} & (({
            item?: _TopicItem;
            discontinuity?: never;
            heartbeat?: never;
        } | {
            item?: never;
            discontinuity?: _Discontinuity;
            heartbeat?: never;
        } | {
            item?: never;
            discontinuity?: never;
            heartbeat?: _Heartbeat;
        }))));
        get item(): _TopicItem;
        set item(value: _TopicItem);
        get has_item(): boolean;
        get discontinuity(): _Discontinuity;
        set discontinuity(value: _Discontinuity);
        get has_discontinuity(): boolean;
        get heartbeat(): _Heartbeat;
        set heartbeat(value: _Heartbeat);
        get has_heartbeat(): boolean;
        get kind(): "none" | "item" | "discontinuity" | "heartbeat";
        static fromObject(data: {
            item?: ReturnType<typeof _TopicItem.prototype.toObject>;
            discontinuity?: ReturnType<typeof _Discontinuity.prototype.toObject>;
            heartbeat?: ReturnType<typeof _Heartbeat.prototype.toObject>;
        }): _SubscriptionItem;
        toObject(): {
            item?: ReturnType<typeof _TopicItem.prototype.toObject>;
            discontinuity?: ReturnType<typeof _Discontinuity.prototype.toObject>;
            heartbeat?: ReturnType<typeof _Heartbeat.prototype.toObject>;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _SubscriptionItem;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _SubscriptionItem;
    }
    export class _TopicItem extends pb_1.Message {
        #private;
        constructor(data?: any[] | {
            topic_sequence_number?: number;
            value?: _TopicValue;
            publisher_id?: string;
            sequence_page?: number;
        });
        get topic_sequence_number(): number;
        set topic_sequence_number(value: number);
        get value(): _TopicValue;
        set value(value: _TopicValue);
        get has_value(): boolean;
        get publisher_id(): string;
        set publisher_id(value: string);
        get sequence_page(): number;
        set sequence_page(value: number);
        static fromObject(data: {
            topic_sequence_number?: number;
            value?: ReturnType<typeof _TopicValue.prototype.toObject>;
            publisher_id?: string;
            sequence_page?: number;
        }): _TopicItem;
        toObject(): {
            topic_sequence_number?: number;
            value?: ReturnType<typeof _TopicValue.prototype.toObject>;
            publisher_id?: string;
            sequence_page?: number;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _TopicItem;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _TopicItem;
    }
    export class _TopicValue extends pb_1.Message {
        #private;
        constructor(data?: any[] | ({} & (({
            text?: string;
            binary?: never;
        } | {
            text?: never;
            binary?: Uint8Array;
        }))));
        get text(): string;
        set text(value: string);
        get has_text(): boolean;
        get binary(): Uint8Array;
        set binary(value: Uint8Array);
        get has_binary(): boolean;
        get kind(): "none" | "text" | "binary";
        static fromObject(data: {
            text?: string;
            binary?: Uint8Array;
        }): _TopicValue;
        toObject(): {
            text?: string;
            binary?: Uint8Array;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _TopicValue;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _TopicValue;
    }
    export class _Discontinuity extends pb_1.Message {
        #private;
        constructor(data?: any[] | {
            last_topic_sequence?: number;
            new_topic_sequence?: number;
            new_sequence_page?: number;
        });
        get last_topic_sequence(): number;
        set last_topic_sequence(value: number);
        get new_topic_sequence(): number;
        set new_topic_sequence(value: number);
        get new_sequence_page(): number;
        set new_sequence_page(value: number);
        static fromObject(data: {
            last_topic_sequence?: number;
            new_topic_sequence?: number;
            new_sequence_page?: number;
        }): _Discontinuity;
        toObject(): {
            last_topic_sequence?: number;
            new_topic_sequence?: number;
            new_sequence_page?: number;
        };
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _Discontinuity;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _Discontinuity;
    }
    export class _Heartbeat extends pb_1.Message {
        #private;
        constructor(data?: any[] | {});
        static fromObject(data: {}): _Heartbeat;
        toObject(): {};
        serialize(): Uint8Array;
        serialize(w: pb_1.BinaryWriter): void;
        static deserialize(bytes: Uint8Array | pb_1.BinaryReader): _Heartbeat;
        serializeBinary(): Uint8Array;
        static deserializeBinary(bytes: Uint8Array): _Heartbeat;
    }
    interface GrpcUnaryServiceInterface<P, R> {
        (message: P, metadata: grpc_1.Metadata, options: grpc_1.CallOptions, callback: grpc_1.requestCallback<R>): grpc_1.ClientUnaryCall;
        (message: P, metadata: grpc_1.Metadata, callback: grpc_1.requestCallback<R>): grpc_1.ClientUnaryCall;
        (message: P, options: grpc_1.CallOptions, callback: grpc_1.requestCallback<R>): grpc_1.ClientUnaryCall;
        (message: P, callback: grpc_1.requestCallback<R>): grpc_1.ClientUnaryCall;
    }
    interface GrpcStreamServiceInterface<P, R> {
        (message: P, metadata: grpc_1.Metadata, options?: grpc_1.CallOptions): grpc_1.ClientReadableStream<R>;
        (message: P, options?: grpc_1.CallOptions): grpc_1.ClientReadableStream<R>;
    }
    export abstract class UnimplementedPubsubService {
        static definition: {
            Publish: {
                path: string;
                requestStream: boolean;
                responseStream: boolean;
                requestSerialize: (message: _PublishRequest) => Buffer;
                requestDeserialize: (bytes: Buffer) => _PublishRequest;
                responseSerialize: (message: dependency_1.common._Empty) => Buffer;
                responseDeserialize: (bytes: Buffer) => dependency_1.common._Empty;
            };
            Subscribe: {
                path: string;
                requestStream: boolean;
                responseStream: boolean;
                requestSerialize: (message: _SubscriptionRequest) => Buffer;
                requestDeserialize: (bytes: Buffer) => _SubscriptionRequest;
                responseSerialize: (message: _SubscriptionItem) => Buffer;
                responseDeserialize: (bytes: Buffer) => _SubscriptionItem;
            };
        };
        [method: string]: grpc_1.UntypedHandleCall;
        abstract Publish(call: grpc_1.ServerUnaryCall<_PublishRequest, dependency_1.common._Empty>, callback: grpc_1.sendUnaryData<dependency_1.common._Empty>): void;
        abstract Subscribe(call: grpc_1.ServerWritableStream<_SubscriptionRequest, _SubscriptionItem>): void;
    }
    const PubsubClient_base: grpc_1.ServiceClientConstructor;
    export class PubsubClient extends PubsubClient_base {
        constructor(address: string, credentials: grpc_1.ChannelCredentials, options?: Partial<grpc_1.ChannelOptions>);
        Publish: GrpcUnaryServiceInterface<_PublishRequest, dependency_1.common._Empty>;
        Subscribe: GrpcStreamServiceInterface<_SubscriptionRequest, _SubscriptionItem>;
    }
    export {};
}
