import { CompactionTier, ManifestEntry } from "./storage.mjs"; import { TableName, TenantCtx } from "@gscdump/contracts"; import { SearchType } from "gscdump/query"; declare function dayPartition(date: string): string; /** * Hourly partition keyed by the PT calendar day (`YYYY-MM-DD`). One parquet * per day holds 24 hourly buckets — read-merge-write keeps `(url, hour)` * idempotency across retries. Names sort lexically alongside daily ones but * never collide because of the `hourly/` prefix. */ declare function hourPartition(date: string): string; /** * Default `searchType` for entries written before the field landed and for * sync paths that don't request a specific type. GSC's own default; the * vast majority of stored data is web-search. */ declare const DEFAULT_SEARCH_TYPE: SearchType; declare function objectKey(ctx: TenantCtx, table: TableName, partition: string, version: number, searchType?: SearchType): string; /** * Resolve the search type for an entry, defaulting legacy entries to `web`. * Use this anywhere code needs to bucket entries by searchType. */ declare function inferSearchType(entry: Pick): SearchType; /** * Infer the tier for an entry that pre-dates the `tier` field. Daily files * are `raw`; monthly files are `d30`. Anything else (already migrated, or * a partition shape we haven't seen) returns undefined and the caller must * decide how to handle it. */ declare function inferLegacyTier(entry: Pick): CompactionTier | undefined; export { DEFAULT_SEARCH_TYPE, dayPartition, hourPartition, inferLegacyTier, inferSearchType, objectKey };