import type { LogContext } from '@rocicorp/logger';
import type { JSONObject } from '../../../../zero-events/src/json.ts';
import type { ReplicationStage, ReplicationStatusEvent, Status } from '../../../../zero-events/src/status.ts';
import type { Database } from '../../../../zqlite/src/db.ts';
export declare class ReplicationStatusPublisher {
    #private;
    constructor(db: Database);
    publish(lc: LogContext, stage: ReplicationStage, description?: string, interval?: number): this;
    publishAndThrowError(lc: LogContext, stage: ReplicationStage, e: unknown): Promise<never>;
    stop(): this;
}
export declare function publishReplicationError(lc: LogContext, stage: ReplicationStage, description: string, errorDetails?: JSONObject, now?: Date): Promise<void>;
export declare function replicationStatusError(lc: LogContext, stage: ReplicationStage, e: unknown, db?: Database, now?: Date): ReplicationStatusEvent;
export declare function replicationStatusEvent(lc: LogContext, db: Database | undefined, stage: ReplicationStage, status: Status, description?: string, now?: Date): ReplicationStatusEvent;
//# sourceMappingURL=replication-status.d.ts.map