type Arrayable = T | T[]; interface PackArrayOptions[]> extends PackOptions { key?: Arrayable; value?: Arrayable; } interface PackOptions> { key?: Arrayable; value?: Arrayable; resolveKey?: (key: keyof T) => string; } declare function packArray[]>(input: T, options?: PackArrayOptions): Partial>; declare const InternalKeySymbol = "_$key"; declare function packObject>(input: T, options?: PackOptions): Partial; declare function packString(input: T): Record; interface Context { key: string; value: any; } type ResolveFn = (ctx: Context) => string; interface UnpackArrayOptions { key: string | ResolveFn; value: string | ResolveFn; resolveKeyData?: ResolveFn; resolveValueData?: ResolveFn; } declare function unpackToArray(input: Record, options: UnpackArrayOptions): Record[]; interface TransformValueOptions { entrySeparator?: string; keyValueSeparator?: string; wrapValue?: string; resolve?: (ctx: { key: string; value: unknown; }) => string | void; } declare function unpackToString>(value: T, options: TransformValueOptions): string; export { InternalKeySymbol, type TransformValueOptions, type UnpackArrayOptions, packArray, packObject, packString, unpackToArray, unpackToString };