import { type Data, ControlDefinition as UnifiedControlDefinition, type SerializedRecord, DeserializationPlugin } from '@makeswift/controls'; import { type SerializedLegacyControl, type DeserializedLegacyControl } from '../prop-controllers/serialization'; import { type Descriptor } from '../prop-controllers/descriptors'; import { type DeserializedFunction, type SerializedFunction } from '../controls/serialization/message-port'; import { type DeserializeControlRecordsOptions } from '../controls/serialization'; export * from '../prop-controllers/serialization'; export type SerializedControl = SerializedLegacyControl | SerializedRecord; export type DeserializedControl = DeserializedLegacyControl | UnifiedControlDefinition; export declare function serializeControl(control: Descriptor): [SerializedControl, Transferable[]]; export type DeserializeControlOptions = { plugins?: DeserializationPlugin[]; }; export declare function deserializeControl(serializedControl: SerializedControl, options?: DeserializeControlOptions): DeserializedControl; export declare function serializeControls(controls: Record): [Record, Transferable[]]; export declare function deserializeControls(serializedControls: Record, { onError, plugins }?: DeserializeControlRecordsOptions): Record; type AnyFunction = (...args: any[]) => any; export type Serialize = T extends AnyFunction ? SerializedFunction : T extends Record ? { [K in keyof T]: Serialize; } : T; export type Deserialize = T extends SerializedFunction ? DeserializedFunction : T extends Record ? { [K in keyof T]: Deserialize; } : T; //# sourceMappingURL=serialization.d.ts.map