///
import EventEmitter from 'events';
import { SatShapeDataBegin, SatSubsDataBegin, SatSubsDataError, SatSubsReq, SatSubsResp, SatTransOp } from '../../_generated/protocol/satellite.js';
import { Relation, SatelliteErrorCode } from '../../util/index.js';
import type { TypeDecoder } from '../../util/encoders/index.js';
import { DbSchema } from '../../client/model/schema.js';
type SubscriptionId = string;
type RequestId = string;
type SubscriptionDataInternal = {
subscriptionId: SubscriptionId;
lsn: SatSubsDataBegin['lsn'];
transaction: SatTransOp[];
shapeReqToUuid: Record;
};
export declare class SubscriptionsDataCache extends EventEmitter {
private decoder;
requestedSubscriptions: Record>;
remainingShapes: Set;
currentShapeRequestId?: RequestId;
inDelivery?: SubscriptionDataInternal;
dbDescription: DbSchema;
constructor(dbDescription: DbSchema, decoder: TypeDecoder);
isDelivering(): boolean;
subscriptionRequest(subsRequest: SatSubsReq): void;
subscriptionResponse({ subscriptionId }: SatSubsResp): void;
subscriptionDataBegin({ subscriptionId, lsn }: SatSubsDataBegin): void;
subscriptionDataEnd(relations: Map): SubscriptionDataInternal;
shapeDataBegin(shape: SatShapeDataBegin): void;
shapeDataEnd(): void;
transaction(ops: SatTransOp[]): void;
internalError(code: SatelliteErrorCode, msg: string, subId?: SubscriptionId | undefined): never;
subscriptionError(subId: SubscriptionId): void;
subscriptionDataError(subId: SubscriptionId, msg: SatSubsDataError): never;
reset(subscriptionId?: string): void;
private processShapeDataOperations;
}
export {};