export declare const VAULT_REF_PREFIX = "vault:"; /** Config keys an item payload must never set: the replica-mode switch and the world-global accuracy dial. */ export declare const DENIED_GUN_CONFIG_KEYS: readonly ["remoteDriven", "spreadScale"]; export declare const HELD_ITEM_PRESET_NAMES: readonly ["pistol", "rifle", "sword", "mug", "flashlight", "torch", "phone"]; export type ItemDefVaultRef = { assetId: string; version: number; checksumSha256: string; }; export type GunConfigCheckResult = { errors: string[]; warnings: string[]; /** Descriptor-relative sound refs found in the payload (pre-publish form) — existence-checked by validate, * uploaded + rewritten by publish. Play order, de-duplicated. */ relativeSoundRefs: string[]; /** assets.meshes[0] as authored: a relative path pre-publish, a pinned vault ref post-publish, or null. */ meshRef: string | ItemDefVaultRef | null; }; /** * Run the engine installer's structural rules over a parsed descriptor. Collects every violation instead of * throwing on the first (the engine fails fast; a validator reports the full list). The manifest's own * schema validation is a separate pass — this covers only what the engine enforces on top of it. */ export declare function checkGunConfigRules(input: unknown): GunConfigCheckResult;