/** * DevExpress Analytics (serializer\native\multiplatformEngine.d.ts) * Version: 25.2.7 * Build date: May 5, 2026 * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED * License: https://www.devexpress.com/Support/EULAs/universal.xml */ import { IMutableOptions } from './models/base.model'; import { IModel } from './models/interfaces.model'; import { IModelSerializer, IModelSerializerOptions } from './serializer'; type SubscribableProperties = Array | string> | '*'; type ComplexSubscribableProperty = { propertyName: T; subscribables: SubscribableProperties>; computedProperties?: () => SubscribableProperty[]; }; export type SubscribableProperty = { model: T; properties: SubscribableProperties; }; export declare function subscribableProperty(model: SubscribableProperty['model'], properties: SubscribableProperty['properties']): SubscribableProperty; export type ComputedOptions = (() => T) | ({ read: () => T; write: (val: T) => void; }); export type MultiPlatformObservable = T | ko.Observable; export type MultiPlatformComputed = T | ko.Computed; export type Unwrapped = T extends ko.Subscribable ? R : T; export declare class MultiplatformEngine { cleanNode(child: Element): void; addDisposeCallback(element: Node, disposeCallback: () => void): void; removeDisposeCallback(element: Node, disposeCallback: () => void): void; peek(value: T): Unwrapped; getPropertyValue(model: T, propertyName: Key | string): T[Key]; setPropertyValue(model: T, propertyName: Key | string, value: Unwrapped, currentValue?: T[Key]): void; generateProperty(model: T, propertyName: Key, value: T[Key], options?: IMutableOptions): void; generateArrayProperty(model: T, propertyName: Key, value: T[Key], options?: IMutableOptions): void; createComputedProperty(configurableModel: T, configurablePropertyName: Key, comOptions: ComputedOptions, properties: SubscribableProperty[], options?: IMutableOptions, pure?: boolean): () => void; subscribeValue(value: T, callback: (newVal: T) => void): () => void; subscribeOnPropertyChanged(model: T, subscribablePropertyName: Key, callback: (newVal: T[Key]) => void, onDispose?: () => void): () => void; unwrap(value: T): Unwrapped; wrap(value: T): MultiPlatformObservable; applyBindings(value: unknown, element: Element): void; } export declare const nativeMultiPlatformEngine: MultiplatformEngine; export declare const nativeModelSerializer: (options?: IModelSerializerOptions) => IModelSerializer; export declare let currentModelSerializer: (options?: IModelSerializerOptions) => IModelSerializer; export declare let currentMultiPlatformEngine: MultiplatformEngine; export declare function setCurrentMultiplatfromEngine(engine: MultiplatformEngine): void; export declare function setCurrentModelSerializer(serializerCallback: typeof currentModelSerializer): void; export {};