import { type XmlNode } from '../xml/tree'; export interface CustomProperty { /** User-visible property name (must be unique within the workbook). */ name: string; /** OOXML "Property Identifier"; ≥ 2. Auto-allocated if absent on append. */ pid: number; /** Format ID GUID. Defaults to the well-known {D5CDD505-…} on append. */ fmtid?: string; /** Typed value as a raw vt: element. Use the `make*Value` helpers. */ value: XmlNode; } export interface CustomProperties { properties: CustomProperty[]; } export declare function makeCustomProperties(): CustomProperties; export declare function makeStringValue(s: string): XmlNode; export declare function makeAsciiStringValue(s: string): XmlNode; export declare function makeIntValue(n: number): XmlNode; export declare function makeDoubleValue(n: number): XmlNode; export declare function makeBoolValue(b: boolean): XmlNode; export declare function makeFiletimeValue(iso: string): XmlNode; export declare function makeDateValue(iso: string): XmlNode; export declare function readStringValue(v: XmlNode): string | undefined; export declare function readIntValue(v: XmlNode): number | undefined; export declare function readDoubleValue(v: XmlNode): number | undefined; export declare function readBoolValue(v: XmlNode): boolean | undefined; export declare function readFiletimeValue(v: XmlNode): string | undefined; export declare function appendCustomProperty(props: CustomProperties, name: string, value: XmlNode, opts?: { pid?: number; fmtid?: string; }): CustomProperty; export declare function findCustomPropertyByName(props: CustomProperties, name: string): CustomProperty | undefined; export declare function customPropsToBytes(p: CustomProperties): Uint8Array; export declare function customPropsFromBytes(bytes: Uint8Array | string): CustomProperties; import type { Workbook } from '../workbook/workbook'; /** Set (or replace) a custom string property. */ export declare const setCustomStringProperty: (wb: Workbook, name: string, value: string) => CustomProperty; /** * Set (or replace) a custom numeric property. Integers (within Int32 range) are * stored as `vt:i4`; non-integer / out-of-range numbers as `vt:r8` doubles. */ export declare const setCustomNumberProperty: (wb: Workbook, name: string, value: number) => CustomProperty; /** Set (or replace) a custom boolean property. */ export declare const setCustomBoolProperty: (wb: Workbook, name: string, value: boolean) => CustomProperty; /** * Set (or replace) a custom date property. Accepts a `Date` (converted to ISO * via `toISOString()`) or a pre-formatted W3C-DTF string. */ export declare const setCustomDateProperty: (wb: Workbook, name: string, value: Date | string) => CustomProperty; /** * Read the typed value of a custom property by name. Tries each decoder in turn * — string, int, double, bool, filetime — and returns the first hit. Returns * `undefined` for unknown names or unsupported types. */ export declare const getCustomPropertyValue: (wb: Workbook, name: string) => string | number | boolean | undefined; /** * Remove a custom property by name. Returns `true` when one was removed, * `false` when the name wasn't found. */ export declare const removeCustomProperty: (wb: Workbook, name: string) => boolean; /** Read-only snapshot of every custom property. */ export declare const listCustomProperties: (wb: Workbook) => ReadonlyArray;