import type { ReadableOptions } from "stream";
import type { ReadRevision, StreamSubscription, BaseOptions, EventType } from "../types";
export interface SubscribeToStreamOptions extends BaseOptions {
    /**
     * Starts the read at the given event revision.
     * @defaultValue START
     */
    fromRevision?: ReadRevision;
    /**
     * The best way to explain link resolution is when using system projections. When reading the stream `$streams` (which
     * contains all streams), each event is actually a link pointing to the first event of a stream. By enabling link
     * resolution feature, the server will also return the event targeted by the link.
     * @defaultValue false
     */
    resolveLinkTos?: boolean;
}
declare module "../Client" {
    interface Client {
        /**
         * Subscribe to events on the given stream.
         * @param streamName - A stream name.
         * @param options - Subscription options.
         * @param readableOptions - Readable stream options.
         */
        subscribeToStream<KnownEventType extends EventType = EventType>(streamName: string, options?: SubscribeToStreamOptions, readableOptions?: ReadableOptions): StreamSubscription<KnownEventType>;
    }
}
