export interface TracePartitionConfig { /** Days of hot partitions kept for `trace` / `trace_step`. */ readonly hotRetentionDays: number; /** Days of cold partitions kept for `trace_retained` / `trace_step_retained`. */ readonly errorRetentionDays: number; /** Days of audit partitions kept for `audit_record` — independent of trace storage. */ readonly auditRetentionDays: number; /** Days of partitions pre-created ahead of today so writes never race creation. */ readonly partitionLeadDays: number; } /** A single day partition: which parent it belongs to, its name, and its day. */ export interface DayPartition { readonly parent: string; readonly name: string; readonly day: string; } export interface PartitionPlan { readonly create: readonly DayPartition[]; readonly drop: readonly DayPartition[]; } export interface PartitionPlanInput { readonly now: Date; readonly config: TracePartitionConfig; /** Existing child partition names per parent table, as found in the catalog. */ readonly existing: ReadonlyMap>; } /** * Reconcile desired partitions against existing ones. * * For each table the desired set spans `[today - retentionDays, today + leadDays]`. * `create` is every desired day with no partition yet. `drop` is every existing * partition whose day has fallen before the retention cutoff — retention is the * dropping of day partitions, never a DELETE. Catalog children that don't parse * as our day partitions are left untouched. */ export declare function planPartitions(input: PartitionPlanInput): PartitionPlan; //# sourceMappingURL=plan.d.ts.map