/** 이 길이 받는 사실 — 마감된 구간을 말하는 것들. */ export declare const PERIOD_FACTS: readonly string[]; export interface BackfillJudgement { /** 저널에 넣어도 되는 것. */ keep: any[]; /** 받지 않은 것과 그 이유 — 조용히 버리지 않는다. */ refused: { record: unknown; reason: string; }[]; } /** * 무엇을 채울 수 있나. * * 세 가지로 거절한다. * * 마감된 구간이 아니다 상태를 바꾸는 사실을 저널에만 넣으면 상태와 저널이 갈라진다 * 아직 오지 않은 시각 지난 기록이 아니다 * 보존보다 오래됐다 넣어도 다음 정리에서 지워진다 — 조용히 사라지느니 거절한다 */ export declare function judgeBackfill(envelopes: readonly any[], opts: { nowMs: number; retentionDays?: number; }): BackfillJudgement; /** * 이미 있는 것을 가려낸다 — **정체성은 내용에 있다**(커널 0.7.81). * * 저장소의 제약으로 막지 않는 이유는 드라이버가 다섯이고 충돌 처리가 제각각이기 때문이다. * 구간 단위로 한 번 읽어 가려내는 편이 이식성이 있고 값도 싸다. */ export declare function splitAlreadyThere(keep: readonly any[], existingIds: ReadonlySet): { fresh: any[]; skipped: number; };