/** * OPC part name normalization and relationship target resolution. * * Part names use forward-slash absolute grammar (`/xl/workbook.xml`). * Relationship targets resolve relative to the source part URI * (ECMA-376-2 Relationships). * * @private */ /** * Normalize a ZIP entry name or part name to an absolute OPC part name. * - Backslashes → forward slashes * - Ensure leading `/` * - Collapse duplicate slashes * - Remove `.` segments; reject `..` escape above root */ export declare function normalizePartName(name: string): string; /** * Case-insensitive compare of OPC part names (used for Override PartName). */ export declare function partNamesEqual(a: string, b: string): boolean; /** * Extension (without dot) for Default content type matching, lower-cased. * Returns undefined when the part has no extension. */ export declare function partExtension(partName: string): string | undefined; /** * ZIP entry name for an absolute OPC part name (strip leading `/`). */ export declare function partNameToZipName(partName: string): string; /** * Absolute OPC name of the relationships part for `sourcePart`. * Package-level: `sourcePart` is `null` → `/_rels/.rels`. * Part-level: `/xl/workbook.xml` → `/xl/_rels/workbook.xml.rels`. */ export declare function relationshipsPartNameFor(sourcePart: string | null): string; /** * Resolve a relationship Target URI against a source part. * External targets are returned as-is (not fetched). */ export declare function resolveRelationshipTarget(sourcePart: string | null, target: string, targetMode: 'Internal' | 'External' | undefined): string;