import { IPaintObject } from "../../../../ImageViewer/Layers"; declare type ObjectType = string; declare type PropertyKey = string; interface PropertyValueMap { [key: PropertyKey]: any; } export declare class PaintObjectDefaultsManager { private static factoryDefaults; private static userOverrides; private static excludedProps; /** * Checks whether factory default properties have already been registered * for the given object type. * * @param type - The paint object type to check. * @returns True if factory defaults are registered, false otherwise. */ static hasFactoryDefaults(type: ObjectType): boolean; /** * Registers the default properties for a specific object instance's type. * This method saves the initial "factory" property values for the type * and should only be called once per type (typically on first object creation). * Subsequent calls for the same type will be ignored. * * @param obj - The paint object instance whose properties will be registered as defaults. */ static registerDefaultsForObject(obj: IPaintObject): void; /** * Saves a user-modified property to override defaults. */ static saveUserProperty(type: ObjectType, key: PropertyKey, value: any): void; /** * Saves all properties from the given object as user overrides for its type. * Only properties that are not excluded and exist in factory defaults will be saved. * * @param obj - The paint object instance whose properties should be saved */ static saveAllPropertiesFromObject(obj: IPaintObject): void; /** * Returns the merged properties (factory defaults + user overrides) for a type. */ static getMergedProperties(type: ObjectType): PropertyValueMap; /** * Resets user overrides to factory defaults for a specific type. */ static resetUserOverrides(type: ObjectType): void; /** * Sets which property names should be ignored when saving. */ static setExcludedProperties(props: PropertyKey[]): void; private static extractRelevantProperties; } export {};