export declare const SEPARATOR = "__"; /** * Join an already-transformed label to its id inside NAME_MAX. * * The id and the suffix are what make the name *address* something, so they * are spent first and never trimmed; the label takes whatever of the 255 * bytes is left. Trimming the id instead would leave a name that no longer * resolves, and `parseIdName` splits on the last separator, so a shortened * label still round-trips. * * Budgets in bytes, not characters: `sanitizeName` caps at 100 characters and * `pathSafeName` does not cap at all, so a CJK display name reached 621 bytes * against a 255-byte NAME_MAX and the filesystem refused the name outright. * * Takes the label already transformed because callers differ on the * transform: most pass one name through `sanitizeName`, while Linear's team * directory joins two sanitized parts with the separator itself -- * re-sanitizing that would collapse `__` to `_` and change the name's shape. */ export declare function fitIdName(label: string, resourceId: string, suffix?: string): string; /** * Build a `__` segment for VFS paths. * * Used by resources that encode resource IDs in filenames for reverse lookups * (Discord, Slack, gcal calendars, Linear, Trello). By default applies the * full `sanitizeName` transform; set `pathSafe` to preserve the original * spelling and only escape the path separator. Discord and Slack use * `pathSafe` so display names stay readable. * * Pass `suffix` here rather than concatenating an extension afterwards, so it * is counted against the NAME_MAX budget instead of pushing the name past it. */ export declare function makeIdName(displayName: string, resourceId: string, pathSafe?: boolean, suffix?: string): string; /** * Extract `[displayName, resourceId]` from `makeIdName` output, optionally * stripping a file extension first. Throws when `name` doesn't end with * `suffix` or doesn't contain `__`. */ export declare function parseIdName(name: string, suffix?: string): [string, string]; //# sourceMappingURL=naming.d.ts.map