export type RealtimeDecision = {
    readonly kind: "apply";
    readonly sequence: number;
} | {
    readonly kind: "ignore";
    readonly sequence: number;
} | {
    readonly kind: "stale-refetch";
    readonly lastSequence: number;
    readonly observedSequence: number;
    readonly reason: "gap" | "reconnect";
};
/**
 * FIRE INV-FIRE-025 / RT-023 client rule.
 * Realtime is projection transport only. A gap or reconnect never advances
 * lifecycle from the stream; the client marks stale and re-queries authority.
 */
export declare function decideRealtimeUpdate(input: {
    readonly lastSequence: number;
    readonly observedSequence: number;
    readonly reconnected?: boolean;
}): RealtimeDecision;
//# sourceMappingURL=realtime.d.ts.map