import type { SchemaAction } from '../../schema/index.js'; import type { ResetLinks } from '../../schema/utils/resetLinks.js'; import type { NarrowObject } from '../../types/index.js'; import type { Light, LightObj } from '../utils/light.js'; import { ItemSchema } from './schema.js'; import type { ItemAttributes } from './types.js'; type ItemSchemer = (attributes: NarrowObject) => ItemSchema_>; /** * Define a new item schema * * @param attributes Dictionary of attributes */ export declare const item: ItemSchemer; export declare class ItemSchema_ extends ItemSchema { pick(...attributeNames: ATTRIBUTE_NAMES): ItemSchema_<{ [KEY in ATTRIBUTE_NAMES[number]]: ResetLinks; }>; omit(...attributeNames: ATTRIBUTE_NAMES): ItemSchema_<{ [KEY in Exclude]: ResetLinks; }>; and(additionalAttr: NarrowObject | ((schema: this) => NarrowObject)): ItemSchema_<{ [KEY in keyof ATTRIBUTES | keyof ADDITIONAL_ATTRIBUTES]: KEY extends keyof ADDITIONAL_ATTRIBUTES ? Light : KEY extends keyof ATTRIBUTES ? ATTRIBUTES[KEY] : never; }>; build = SchemaAction>(Action: new (schema: this) => ACTION): ACTION; } export {};