/** * 资源墙 localStorage:解析、校验、首屏读盘(与 PisellReservation 水合/落盘同源)。 */ import type { VenueWallAppearanceTheme, RecordBoardResourceWallLayoutPersist } from '@pisell/materials'; /** 资源墙外观主题是否含有效数据(用于决定是否落盘 / 是否用磁盘值覆盖 state) */ export declare function isVenueWallAppearanceThemeNonEmpty(t: VenueWallAppearanceTheme): boolean; /** 资源墙多选 id:去重且保持首次出现顺序(与勾选 / 落盘顺序一致)。 */ export declare function dedupeResourceWallIdsPreserveOrder(ids: readonly string[]): string[]; export declare function parseResourceWallLocalStorage(raw: string | null, whitelist: readonly string[]): { resourceIds?: string[]; /** v1 对象或旧版纯数组:是否显式携带 resource_wall_resource_ids(含空数组),水合时不得再默认「全选」 */ resourceWallResourceIdsInFile?: boolean; filterValuePatches: Record; venueWallAppearanceTheme?: VenueWallAppearanceTheme; venueWallAppearanceMode?: 'light' | 'dark'; venueWallResourceLayout?: RecordBoardResourceWallLayoutPersist; }; /** * 首屏同步读盘,供 `useState` 初值使用。 * 避免同一提交内「persist effect 先于 hydrate 的 setState 落盘」时用默认 layout 覆盖 localStorage 里已保存的版式。 */ export declare function readResourceWallPersistedSliceFromDisk(bodyViewStorageKey: string | undefined): { venueWallAppearanceTheme: VenueWallAppearanceTheme; venueWallAppearanceMode: 'light' | 'dark'; venueWallResourceLayout: RecordBoardResourceWallLayoutPersist; };