import { FieldListResult, FieldMeta, FieldQueryParams } from '../types/field';
import { FieldProviderBase } from './FieldProviderBase';
/** 字段实例层 */
export declare abstract class FieldProviderRuntime {
    readonly base: FieldProviderBase;
    readonly modelKey: ModelKey;
    private listCache;
    private keyMap;
    private idMap;
    constructor(base: FieldProviderBase, modelKey: ModelKey);
    fetchFields(params?: FieldQueryParams): Promise<FieldListResult>;
    getFieldByKey(key: FieldKey): Promise<FieldMeta | undefined>;
    getFieldById(id: FieldId): Promise<FieldMeta | undefined>;
    getFieldList(): FieldMeta[];
    filter(fn: (f: FieldMeta) => boolean): Promise<FieldMeta[]>;
    refresh(): Promise<void>;
    clearCache(): void;
    protected updateCache(data: FieldMeta[], total?: number): void;
    protected abstract load(params?: FieldQueryParams): Promise<FieldListResult>;
}
