import { Collection } from "../../collection/index.cjs";
import { Context, GetResult } from "../builder/types.cjs";
import { CollectionConfigBuilder } from "./collection-config-builder.cjs";
import { CollectionSubscription } from "../../collection/subscription.cjs";
import { LazyDemandPlan } from "../compiler/joins.cjs";
export declare class CollectionSubscriber<TContext extends Context, TResult extends object = GetResult<TContext>> {
    private sourceId;
    private alias;
    private collection;
    private collectionConfigBuilder;
    private subscriptionLoadingPromises;
    private sentToD2Rows;
    private orderedLoader;
    private readonly demand;
    constructor(sourceId: string, alias: string, collection: Collection, collectionConfigBuilder: CollectionConfigBuilder<TContext, TResult>);
    subscribe(): CollectionSubscription;
    private subscribeToChanges;
    private registerSubscriptionCleanup;
    setDemand(subscription: CollectionSubscription, plan: LazyDemandPlan, keys: Set<unknown>): void;
    private sendChangesToPipeline;
    private subscribeToMatchingChanges;
    private subscribeToOrderedChanges;
    private truncateReplayPublicationControl;
    loadMoreIfNeeded(subscription: CollectionSubscription): void;
    private ensureLoadingPromise;
}
