/** * AllowEdit and IgnoreEDTRelation on a table field, written to the table XML. The bridge's * create payload has no key for either, and its modify-field reads allowEdit but not * IgnoreEDTRelation; writing both here keeps one path that also works without the bridge. AllowEdit=No clears BPErrorTablePrimaryKeyEditable on staging key * fields; IgnoreEDTRelation=Yes clears BPErrorEDTNotMigrated on fields whose EDT has a relation. * * Sub-element order was measured over the fields of a real repo (no two files disagree): * a mis-ordered element is dropped by the deserializer without a word. */ /** AxTableField child elements in serialised order, measured over ~225k shipped fields. */ export declare const FIELD_ELEMENT_ORDER: readonly ['Name', 'AliasFor', 'AllowEdit', 'AllowEditOnCreate', 'AosAuthorization', 'AssetClassification', 'ConfigurationKey', 'CountryRegionCodes', 'CountryRegionContextField', 'ExtendedDataType', 'GeneralDataProtectionRegulation', 'FeatureClass', 'GroupPrompt', 'HelpText', 'IgnoreEDTRelation', 'IsManuallyUpdated', 'IsObsolete', 'IsSystemGenerated', 'Label', 'Mandatory', 'RelationContext', 'SaveContents', 'Null', 'Visible', 'MinReadAccess', 'SysSharingType', 'StringSize', 'Tags', 'CorrectionFlagField', 'Scale', 'EnumType', 'RelatedTable', 'FieldUpdate', 'CurrencyCode', 'CurrencyCodeField', 'CurrencyCodeTable', 'CurrencyDate', 'CurrencyDateField', 'CurrencyDateTable']; /** The properties this module writes. */ export declare const TABLE_FIELD_EDITABLE_PROPERTIES: readonly string[]; export interface FieldEditResult { ok: boolean; xml?: string; message: string; } /** * The document's indent unit, read from the first child of the root element. Shipped * metadata is tab-indented, but about 2% of it uses two spaces; an edit anchored on a * hard-coded tab would find nothing in those files. */ export declare function detectIndentUnit(xml: string): string; /** true/"yes" → Yes, false/"no" → No, anything else → undefined. */ export declare const yesNo: (v: unknown) => 'Yes' | 'No' | undefined; /** Set (or insert in canonical position) one property of one field of an AxTable / AxTableExtension. */ export declare function upsertTableFieldProperty(xml: string, fieldName: string, prop: string, value: string): FieldEditResult; export interface FieldPropertyPatch { field: string; prop: string; value: string; } /** * The property patches a create's fields[] asks for: `allowEdit` and `ignoreEdtRelation` * (also accepted as `ignoreEDTRelation`), true/false or Yes/No. */ export declare function fieldPropertiesFromSpecs(specs: Array>): FieldPropertyPatch[]; /** Apply several patches; returns the new XML and the ones that could not be applied. */ export declare function applyFieldPropertyPatches(xml: string, patches: readonly FieldPropertyPatch[]): { xml: string; applied: string[]; failed: string[]; }; //# sourceMappingURL=tableFieldPropertyEdit.d.ts.map