import type { Options } from './attributes.js'; import type { FieldConfigInit } from './fields.js'; import { FieldBuilder } from './fields.js'; import { rawTypes, type ValidName } from './primitives.js'; import type { ExtendStruct, StructConstructor, StructValue } from './structs.shared.js'; export * from './structs.shared.js'; export declare function struct>(this: Function | Options | void, structName: string, fieldDecls: T, ...options: Options[]): StructConstructor>; export declare namespace struct { var extend: , const Base extends StructConstructor>(base: Base & (new (...args: any[]) => any), structName: string, fieldDecls: T, ...options: Options[]) => StructConstructor>; var packed: typeof struct; var align: (alignment: number) => typeof struct; var dynamic: typeof struct; } export declare function union>(unionName: string, fieldDecls: T, ...options: Options[]): StructConstructor>; /** * Shortcuts for primitive types that allow easily making arrays */ export declare const types: { [K in ValidName]: FieldBuilder<(typeof rawTypes)[K]>; };