/** * Bucket key standing in for a null/undefined/empty grouping value. `groupData` * already keys that bucket by the empty string; Timeline lanes map their `null` * lane key onto it so both share the ordering rule below. */ export declare const EMPTY_BUCKET_KEY = ""; /** * Order bucket keys for a grouped renderer: declared keys first in the order * they are declared, then everything undeclared in first-seen order, then the * empty bucket last. * * `keys` arrives in first-seen order (a `Map`'s key order, which is insertion * order), and only keys that are actually present are emitted — a declared * value with no rows produces no section and no lane, so ordering never * conjures empty bands. The empty bucket is pinned last regardless of where it * appears in `order`, so a declared list doesn't have to mention it. * * Shared by `groupData`, which passes the grouped field's declared `groupOrder`, * and by `packLanesBySortValue`, which passes nothing — timeline lanes follow * the active sort, so only the empty-bucket-last half of the rule applies * there. One field that is both grouped and sorted can therefore rank its * sections and its lanes differently; that's the documented contract of * `lanePacking="one-per-sort-value"`, not an oversight. */ export declare function orderBucketKeys(keys: string[], order?: string[]): string[]; //# sourceMappingURL=order-bucket-keys.d.ts.map