/** * Chuyển đổi một đối tượng hoặc giá trị thành signal * @param data Dữ liệu cần chuyển đổi thành signal * @param cloneDeepIfNotSignal Có thực hiện sao chép sâu dữ liệu trước khi chuyển đổi hay không nếu data không phải signal. Mặc định là true. * Đặt false nếu muốn giữ nguyên tham chiếu đến dữ liệu gốc. * Nếu muốn sao chép sâu đối tượng signal thì đặt cloneDeepIfNotSignal là true và acceptConvertObjectInnerWritableSignal là true. * @param isSignalPrimitiveType Có chuyển đổi các giá trị nguyên thủy (string, number, boolean) thành signal hay không. Mặc định là false. * Đặt true nếu muốn bọc các giá trị nguyên thủy trong signal. * @param acceptConvertObjectInnerWritableSignal Có tiếp tục tìm kiếm và chuyển đổi các đối tượng bên trong signal hay không. Mặc định là false. * Đặt true nếu muốn tìm và chuyển đổi các đối tượng bên trong signal hoặc chính nó thành signal mới. * @returns Dữ liệu đã được chuyển đổi theo kiểu T */ export declare const convertObjectToSignal: (data: any, cloneDeepIfNotSignal?: boolean, isSignalPrimitiveType?: boolean, acceptConvertObjectInnerWritableSignal?: boolean, seen?: WeakMap) => T; /** * Chuyển đổi một đối tượng signal (có thể lồng nhau) thành đối tượng plain object/array/map/set. * @param data Dữ liệu signal hoặc đối tượng chứa signal cần chuyển đổi. * @param isCloneDeep Có thực hiện sao chép sâu dữ liệu trong quá trình chuyển đổi hay không. Mặc định là true. * @param seen Dùng nội bộ để tránh lặp vô hạn (WeakMap). * @param options Tùy chọn chuyển đổi (ví dụ: convertWhenFirstItemArrayNotIsSignal). * @returns Đối tượng plain object đã được "giải nén" mọi signal bên trong. */ export declare const convertSignalToObject: (data: any, isCloneDeep?: boolean, seen?: WeakMap, options?: { convertWhenFirstItemArrayNotIsSignal?: boolean; }) => T; /** * Unwrap một giá trị cho đến khi không còn là signal nữa. * @param data Giá trị (có thể là lồng nhiều cấp signal) cần unwrap. * @returns Giá trị cuối cùng bên trong signal. */ export declare const unwrapSignal: (data: any) => any;