import type ListDataManager from "./ListDataManager"; import type { PageInitialize } from "@ticatec/uniface-micro-frame/common"; /** * useManagedList 的配置项 * @description dataManager/initializeData/busyIndicator 使用 getter 函数传入, * 以便在组件 props 发生变化时始终读取到最新的值 */ export interface ManagedListOptions { dataManager: () => ListDataManager; initializeData?: () => PageInitialize | null | undefined; busyIndicator?: () => string | null | undefined; defaultBusyText: string; /** * 每次数据加载完成后回调,通常用于把结果写回组件自身可绑定的 list prop */ onLoaded: (list: Array) => void; /** * 首次加载之后(刷新等)出错时的回调;不提供时默认用 MessageBox 弹出错误信息, * 避免错误沦为无任何用户反馈的 unhandled rejection */ onError?: () => ((ex: any) => void) | null | undefined; } /** * 封装“托管型”非分页列表(ListDataManager)的通用加载逻辑: * - 首次挂载时执行 initializeData + loadData,并统一处理 busy 指示器和错误捕获 * - 暴露 loadList,供外部刷新按钮或 bind:this 方式的公开方法调用 * * 用于 cards/managed/ListPage.svelte、data-table/ManagedSimpleDataTableBoard.svelte、 * data-table/managed/ListPage.svelte 三处共享同一套加载状态机。 */ export declare function useManagedList(options: ManagedListOptions): { readonly loaded: boolean; readonly error: any; load: (queryParams?: any) => Promise; initialize: (queryParams?: any) => Promise; };