import type { LogContext } from '@rocicorp/logger';
import type { PostgresDB } from '../../types/pg.ts';
import type { ShardID } from '../../types/shards.ts';
import type { ChangeSource } from '../change-source/change-source.ts';
import { type ChangeStreamData } from '../change-source/protocol/current/downstream.ts';
import type { SubscriptionState } from '../replicator/schema/replication-state.ts';
import { type ChangeStreamerService } from './change-streamer.ts';
/**
 * Performs initialization and schema migrations to initialize a ChangeStreamerImpl.
 */
export declare function initializeStreamer(lc: LogContext, shard: ShardID, taskID: string, discoveryAddress: string, discoveryProtocol: string, changeDB: PostgresDB, changeSource: ChangeSource, subscriptionState: SubscriptionState, autoReset: boolean, backPressureLimitHeapProportion: number, setTimeoutFn?: typeof setTimeout): Promise<ChangeStreamerService>;
/**
 * Internally all Downstream messages (not just commits) are given a watermark.
 * These are used for internal ordering for:
 * 1. Replaying new changes in the Storer
 * 2. Filtering old changes in the Subscriber
 *
 * However, only the watermark for `Commit` messages are exposed to
 * subscribers, as that is the only semantically correct watermark to
 * use for tracking a position in a replication stream.
 */
export type WatermarkedChange = [watermark: string, ChangeStreamData];
//# sourceMappingURL=change-streamer-service.d.ts.map