import type { IKoffiCType } from 'koffi';
import type { StructDetail, StructFactoryResult, StructInitType } from '../../lib/types.js';
/**
 * Generate a complex struct,
 * def can have nested struct or union
 * - key s{number} means struct
 * - key u{number} means union
 */
export declare function genStruct<T extends object = object>(def: StructInitType, name?: string, pointer?: string, sizeColumns?: (keyof T)[]): StructFactoryResult<T>;
/**
 * Generate a complex struct,
 * def can have nested struct or union
 * - key s{number} means struct
 * - key u{number} means union
 */
export declare function genComplexStruct(def: StructInitType, name?: string, pointer?: string): StructDetail;
export declare function genUnion(def: StructInitType, name?: string, pointer?: string): StructDetail;
/**
 * Generate a fixed int16_t array.
 * convert it back to string through decodeInt16Array()
 */
export declare function genFixedInt16Array(length: number): IKoffiCType;
export declare function genFixedArray(length: number): IKoffiCType;
//# sourceMappingURL=struct.helper.d.ts.map