/** * Override Engine — Manages GLOBAL master override logic. * * Pure functions for building override payloads, merging overrides with * global records, and determining field override status. * * @module overrideEngine * @see FMPV-MVWC-E001-S004, R01 high-risk area */ import type { MasterPatternViewFieldDefinition } from '../types'; import type { OverrideStatus } from '../types/internal.types'; /** * Builds an override payload for saving. * * Only includes: * - `isOverridable` fields where value differs from global * - `isCompanyOnly` fields that have values * * Non-overridable fields are NEVER included. * When an overridable field's value equals global, it is excluded (server deletes override). * * @param values - Current form values (potentially overridden) * @param globalValues - Original global record values * @param fields - Field definitions to check overridable/companyOnly flags * @returns Payload object containing only changed override values */ export declare function buildOverridePayload(values: Record, globalValues: Record, fields: MasterPatternViewFieldDefinition[]): Record; /** * Merges a global record with company overrides to produce display values. * * - Overridable fields: use override if present, else global * - Non-overridable fields: always global * - CompanyOnly fields: use override if present, else undefined * * @param record - The global record * @param overrides - Company-specific overrides (null if none) * @param fields - Field definitions * @returns A new record with overrides applied */ export declare function mergeWithOverrides>(record: T, overrides: Record | null, fields: MasterPatternViewFieldDefinition[]): T; /** * Determines the override status of a field. * * @param fieldName - The field to check * @param overrideValues - Current override values (undefined = no override for field) * @param globalValues - Global record values * @returns The override status * * Status meanings: * - `'inherited'`: No override set (overrideValues[fieldName] is undefined) * - `'has_override'`: Override exists and differs from global * - `'will_delete_override'`: Override exists but equals global (saving will delete it) */ export declare function getFieldOverrideStatus(fieldName: string, overrideValues: Record, globalValues: Record): OverrideStatus; //# sourceMappingURL=overrideEngine.d.ts.map