/**
 * @file 零代码list builder
 * @desc 基于crud2 builder构建结果改造而成，支持无代码的列表构建
 */
import { BaseSchemaBuilder } from './SchemaBuilder';
import { Manager } from '../base/Manager';
import { SharedContext } from './SharedContext';
import { ApiStrategyInterface } from './ApiStrategyInterface';
import type { PlainObject } from 'amis';
import type { ModelItem, ModelEntityApiSchema, ExtraField, FeatType } from '../type';
import { CRUDSchemaBuilder } from './CRUDBuilder';
interface IPageMap {
    pageFormId: string;
    pageFormDetailId: string;
}
export interface NoCodeCRUDBuilderOptions {
    /** 表格的展示模式 */
    mode: 'table2' | 'list' | 'cards' | 'table';
    /** 支持的功能场景 */
    feats: FeatType[];
    /** 支持列表查看的字段集合 */
    listFields: ExtraField[];
    /** 支持新增的字段集合 */
    insertFields?: ExtraField[];
    /** 支持批量编辑字段集合 */
    bulkEditFields?: ExtraField[];
    /** 支持查看详情的字段集合 */
    viewFields?: ExtraField[];
    /** 支持编辑的字段集合 */
    editFields?: ExtraField[];
    /** 支持模糊查询的字段集合 */
    fuzzyQueryFields?: ExtraField[];
    /** 支持简单查询的字段集合 */
    simpleQueryFields?: ExtraField[];
    /** 支持高级查询的字段集合 */
    advancedQueryFields?: ExtraField[];
    /** 列表接口的预过滤条件 */
    filters?: ModelEntityApiSchema['filters'];
    /** 列表接口的排序规则 */
    orders?: ModelEntityApiSchema['orders'];
    /** 列表table的功能配置 */
    table?: string[];
    /** 详情表单配置 */
    formFields?: PlainObject[];
    /** 关联页面配置 */
    pageMap: IPageMap;
}
/** headerToolbar 和 footerToolbar 布局换成 flex 包裹 container */
export declare const addSchema2Toolbar: (schema: any, content: any, position: 'header' | 'footer', align: 'left' | 'right') => void;
export declare class NoCodeListSchemaBuilder extends BaseSchemaBuilder<NoCodeCRUDBuilderOptions> {
    readonly model: ModelItem;
    readonly apiStrategy: ApiStrategyInterface;
    readonly manager: Manager;
    readonly sharedContext: SharedContext;
    static id: string;
    options: NoCodeCRUDBuilderOptions;
    readonly ApiIdentifier: 'model-entity';
    readonly crudSchemaBuilder: CRUDSchemaBuilder;
    constructor(model: ModelItem, apiStrategy: ApiStrategyInterface, manager: Manager, sharedContext: SharedContext);
    build(options: NoCodeCRUDBuilderOptions): Promise<any>;
}
export {};
