import { Databases } from 'node-appwrite'; import { ORMConfig, DatabaseField } from '../shared/types'; export declare class AttributeManager { private config; private db; constructor(databases: Databases, config: ORMConfig); /** * Create an attribute in Appwrite */ createAttribute(collectionId: string, key: string, field: DatabaseField): Promise; /** * Delete an attribute from Appwrite */ deleteAttribute(collectionId: string, key: string): Promise; /** * Compare if an existing attribute matches the desired field configuration * Note: Some properties like size and array cannot be changed after creation */ attributeMatches(existingAttr: any, key: string, field: DatabaseField): boolean; /** * Check if attributes differ in immutable properties (type, size, array) * These properties cannot be updated and require recreation */ private hasImmutableDifferences; /** * Update an attribute's mutable properties (required, default, min/max) * If immutable properties differ, throws an error to warn about data loss */ updateAttribute(collectionId: string, key: string, field: DatabaseField, existingAttr: any): Promise; } //# sourceMappingURL=attribute-manager.d.ts.map