/**
 * 这个是给模型组件用的
 */
import { FieldItem } from '../type';
import { ApiBuilder } from './ApiBuilder';
import { FormSchemaBuilder } from './Form';
import { BaseSchemaBuilder } from './SchemaBuilder';
type ConditionField = any;
export interface TableListBuildOptions {
    /**
     * 开启哪些功能
     */
    features: Array<string>;
    /**
     * 列表字段信息
     */
    schemaFields: Array<{
        data: any;
        enabled: boolean;
    }>;
    /**
     * 简单搜索字段
     */
    simpleFilters?: Array<{
        data: any;
        enabled: boolean;
    }>;
    /**
     * 是否开启模糊搜索
     */
    keywordsFilter?: boolean;
    keywordsFilters?: Array<{
        field: FieldItem;
        enabled: boolean;
    }>;
    advancedFilter?: boolean;
    advancedFilters?: Array<{
        field: ConditionField;
        enabled: boolean;
    }>;
    /**
     * 新增字段信息，这个可能并不会存储。
     */
    createSchemaFields?: Array<{
        data: any;
        enabled: boolean;
    }>;
    /**
     * 更新字段信息，这个可能并不会存储
     */
    updateSchemaFields?: Array<{
        data: any;
        enabled: boolean;
    }>;
    /**
     * 更新字段信息，这个可能并不会存储
     */
    bulkUpdateSchemaFields?: Array<{
        data: any;
        enabled: boolean;
    }>;
    /**
     * 详情字段信息，这个可能也不会存储
     */
    viewSchemaFields?: Array<{
        data: any;
        enabled: boolean;
    }>;
    /**
     * 预设条件
     */
    presetConditions?: any;
    dsId: string;
    dsKey: string;
    id: string;
    key: string;
    name: string;
    dsName: string;
    schema?: any;
    req?: Request;
}
export declare class TableListSchemaBuilder extends BaseSchemaBuilder {
    static id: string;
    readonly formBuilder: FormSchemaBuilder;
    setTraceMode(value: boolean): void;
    makeDefaultOptions(): Promise<TableListBuildOptions>;
    /**
     * 从 schema 中反推用了哪些功能
     */
    guessOptionsFromSchema(schema: any): Promise<TableListBuildOptions>;
    protected buildColumn(field: FieldItem, options: any, ab?: ApiBuilder): Promise<import("amis-core").Schema | undefined>;
    extractFieldsAndActions(schema: any): {
        fields: any[];
        actions: any[];
    };
    build(options?: TableListBuildOptions, originSchema?: any): Promise<any>;
    /**
     * 生成表单结构
     *
     * @returns 返回生成的表单结构
     */
    genScaffoldForm(): Promise<any[]>;
    /**
     * 生成面板表单
     *
     * @returns 返回面板表单数组
     */
    genPanelForm(): Promise<any[]>;
    genFieldPanelForm(options: TableListBuildOptions, field: FieldItem, region: string): Promise<any>;
    buildFieldSchema(options: TableListBuildOptions, field: FieldItem, fieldOptions: any, region: string): Promise<import("amis-core").Schema | undefined>;
}
export {};
