import { FieldListResult, FieldMeta, FieldQueryParams } from './field';
export type LoadStatus = 'idle' | 'loading' | 'completed' | 'failed';
export interface IFieldProviderBase {
    /** 套件key */
    suiteKey: SuiteKey;
    /** 缓存有效期（毫秒，-1 表示永久缓存） */
    cacheTime?: number;
}
/** 字段实例层 */
export interface IFieldProviderRuntime {
    base: IFieldProviderBase;
    /** 模型key */
    modelKey: ModelKey;
    /** 拉取字段列表 */
    fetchFields(params?: FieldQueryParams): Promise<FieldListResult>;
    /** 获取指定字段信息（通过 key） */
    getFieldByKey(key: FieldKey): Promise<FieldMeta | undefined>;
    /** 获取指定字段信息（通过 id） */
    getFieldById(id: FieldId): Promise<FieldMeta | undefined>;
    /** 过滤本地/已拉取的列表 */
    filter?(predicate: (f: FieldMeta) => boolean): Promise<FieldMeta[]>;
    /** 刷新缓存 */
    refresh?: () => Promise<void>;
}
/** Provider 基础配置（套件级） */
export interface FieldProviderExtendedConfig {
    /** 套件标识 */
    suiteKey: SuiteKey;
    /** 缓存有效期（毫秒，-1 表示永久缓存） */
    cacheTime?: number;
}
