import { BasePlugin } from '../../base/BasePlugin';
import { FormSchema, MayBeSchema, RelationMode } from '../../type';
import { BuildFieldSchemaContext } from '../../base/PluginInterface';
import { ApiBuilder } from '../../schema-builder/ApiBuilder';
export declare class ManyToManyRelationPlugin extends BasePlugin {
    static id: string;
    registerRelationType(): {
        type: RelationMode;
        title: string;
        description: string;
    };
    guessFieldOptionsFromSchema(options: Record<string, any>, context: BuildFieldSchemaContext, schema?: any): void;
    buildFieldSettingForm(schema: FormSchema, context: BuildFieldSchemaContext, options?: any): Promise<void>;
    buildFieldSchema(schema: MayBeSchema, context: BuildFieldSchemaContext, options?: any, ab?: ApiBuilder, originSchema?: any): Promise<void>;
    /**
     * 构建字段查看模式可配置的属性配置面板表单
     */
    buildFieldViewSettingForm(schema: MayBeSchema, context: BuildFieldSchemaContext): Promise<void>;
    buildFieldViewSchema(schema: MayBeSchema, context: BuildFieldSchemaContext, options?: {
        displayType?: 'dialog' | 'drawer' | 'embed' | 'link';
        displayColumns?: Array<string>;
        tpl?: string;
        quickEdit?: boolean;
        [propName: string]: any;
    }, ab?: ApiBuilder): Promise<void>;
    /**
     * 构建字段编辑模式可配置的属性配置面板表单
     */
    buildFieldEditSettingForm(schema: MayBeSchema, context: BuildFieldSchemaContext, options?: {
        isRelationField?: boolean;
    }): Promise<void>;
    buildFieldEditSchema(schema: MayBeSchema, context: BuildFieldSchemaContext, options: {
        label?: string;
        inputType?: 'combo' | 'table' | 'select' | 'checkboxes' | 'list-select' | 'picker';
        displayColumns?: Array<string> | string;
        inputColumns?: Array<string>;
        inputCreatable?: boolean;
        inputEditable?: boolean;
        inputRemovable?: boolean;
        /** 关系表的交互方式 */
        interationType?: 'embed' | 'drawer' | 'dialog';
        /** 选项类控件的展示标题 */
        labelField: string;
        [propName: string]: any;
    }, ab?: ApiBuilder, originSchema?: any): Promise<void>;
}
