export = SerializerMiddleware; /** * @template DeserializedType * @template SerializedType */ declare class SerializerMiddleware { /** * @param {any | function(): Promise | any} value contained value or function to value * @param {SerializerMiddleware} target target middleware * @param {object=} options lazy options * @param {any=} serializedValue serialized value * @returns {function(): Promise | any} lazy function */ static createLazy( value: any | (() => Promise | any), target: SerializerMiddleware, options?: object | undefined, serializedValue?: any | undefined, ): () => Promise | any; /** * @param {function(): Promise | any} fn lazy function * @param {SerializerMiddleware=} target target middleware * @returns {boolean} true, when fn is a lazy function (optionally of that target) */ static isLazy( fn: () => Promise | any, target?: SerializerMiddleware | undefined, ): boolean; /** * @param {function(): Promise | any} fn lazy function * @returns {object} options */ static getLazyOptions(fn: () => Promise | any): object; /** * @param {function(): Promise | any} fn lazy function * @returns {any} serialized value */ static getLazySerializedValue(fn: () => Promise | any): any; /** * @param {function(): Promise | any} fn lazy function * @param {any} value serialized value * @returns {void} */ static setLazySerializedValue(fn: () => Promise | any, value: any): void; /** * @param {function(): Promise | any} lazy lazy function * @param {function(any): Promise | any} serialize serialize function * @returns {function(): Promise | any} new lazy */ static serializeLazy( lazy: () => Promise | any, serialize: (arg0: any) => Promise | any, ): () => Promise | any; /** * @param {function(): Promise | any} lazy lazy function * @param {function(any): Promise | any} deserialize deserialize function * @returns {function(): Promise | any} new lazy */ static deserializeLazy( lazy: () => Promise | any, deserialize: (arg0: any) => Promise | any, ): () => Promise | any; /** * @param {function(): Promise | any} lazy lazy function * @returns {function(): Promise | any} new lazy */ static unMemoizeLazy( lazy: () => Promise | any, ): () => Promise | any; /** * @abstract * @param {DeserializedType} data data * @param {Object} context context object * @returns {SerializedType|Promise} serialized data */ serialize( data: DeserializedType, context: any, ): SerializedType | Promise; /** * @abstract * @param {SerializedType} data data * @param {Object} context context object * @returns {DeserializedType|Promise} deserialized data */ deserialize( data: SerializedType, context: any, ): DeserializedType | Promise; }