import { Transform, TransformCallback, TransformOptions } from "stream";
import type { ClientReadableStream } from "@grpc/grpc-js";
import type { ReadResp } from "../../../generated/streams_pb";
import type { Filter, ReadableSubscription } from "../../types";
import { ConvertGrpcEvent } from "../../utils";
type CreateGRPCStream = () => Promise<ClientReadableStream<ReadResp>>;
export declare class Subscription<E> extends Transform implements ReadableSubscription<E> {
    #private;
    protected convertGrpcEvent: ConvertGrpcEvent<ReadResp.ReadEvent, E>;
    id?: string;
    constructor(createGRPCStream: CreateGRPCStream, convertGrpcEvent: ConvertGrpcEvent<ReadResp.ReadEvent, E>, options: TransformOptions, checkpointReached?: Filter["checkpointReached"]);
    private initialize;
    _transform(resp: ReadResp, _encoding: string, next: TransformCallback): Promise<void>;
    unsubscribe(): Promise<void>;
}
export {};
