import { ISchema } from '@tachybase/schema';
import { CollectionFieldInterface } from '../../data-source/collection-field-interface/CollectionFieldInterface';
export declare class M2MFieldInterface extends CollectionFieldInterface {
    name: string;
    type: string;
    group: string;
    order: number;
    title: string;
    description: string;
    isAssociation: boolean;
    default: {
        type: string;
        uiSchema: {
            'x-component': string;
            'x-component-props': {
                multiple: boolean;
            };
        };
        reverseField: {
            interface: string;
            type: string;
            uiSchema: {
                'x-component': string;
                'x-component-props': {
                    multiple: boolean;
                };
            };
        };
    };
    availableTypes: string[];
    schemaInitialize(schema: ISchema, { field, readPretty, block, targetCollection }: {
        field: any;
        readPretty: any;
        block: any;
        targetCollection: any;
    }): void;
    initialize(values: any): void;
    properties: {
        type: import("@tachybase/schema").Stringify<{
            [key: symbol]: any;
            [key: `x-${string}`]: any;
            [key: `x-${number}`]: any;
            version?: string;
            name?: import("@tachybase/schema").SchemaKey;
            title?: any;
            description?: any;
            default?: any;
            readOnly?: boolean;
            writeOnly?: boolean;
            type?: import("@tachybase/schema").SchemaTypes;
            enum?: import("@tachybase/schema").SchemaEnum<any>;
            const?: any;
            multipleOf?: number;
            maximum?: number;
            exclusiveMaximum?: number;
            minimum?: number;
            exclusiveMinimum?: number;
            maxLength?: number;
            minLength?: number;
            pattern?: string | RegExp;
            maxItems?: number;
            minItems?: number;
            uniqueItems?: boolean;
            maxProperties?: number;
            minProperties?: number;
            required?: string[] | boolean | string;
            format?: string;
            $ref?: string;
            $namespace?: string;
            definitions?: import("@tachybase/schema").SchemaProperties<any, any, any, any, any, any, any, any>;
            properties?: import("@tachybase/schema").SchemaProperties<any, any, any, any, any, any, any, any>;
            items?: import("@tachybase/schema").SchemaItems<any, any, any, any, any, any, any, any>;
            additionalItems?: import("@tachybase/schema").Stringify</*elided*/ any>;
            patternProperties?: import("@tachybase/schema").SchemaProperties<any, any, any, any, any, any, any, any>;
            additionalProperties?: import("@tachybase/schema").Stringify</*elided*/ any>;
            "x-value"?: any;
            "x-index"?: number;
            "x-pattern"?: any;
            "x-display"?: any;
            "x-validator"?: any;
            "x-decorator"?: any;
            "x-decorator-props"?: any;
            "x-component"?: any;
            "x-component-props"?: any;
            "x-reactions"?: import("@tachybase/schema").SchemaReactions<any>;
            "x-content"?: any;
            "x-data"?: any;
            "x-visible"?: boolean;
            "x-hidden"?: boolean;
            "x-disabled"?: boolean;
            "x-editable"?: boolean;
            "x-read-only"?: boolean;
            "x-read-pretty"?: boolean;
            "x-compile-omitted"?: string[];
        }>;
        grid: {
            type: string;
            'x-component': string;
            properties: {
                row1: {
                    type: string;
                    'x-component': string;
                    properties: {
                        col11: {
                            type: string;
                            'x-component': string;
                            properties: {
                                source: {
                                    type: string;
                                    title: string;
                                    'x-decorator': string;
                                    'x-component': string;
                                    'x-disabled': boolean;
                                };
                            };
                        };
                        col12: {
                            type: string;
                            'x-component': string;
                            properties: {
                                through: {
                                    type: string;
                                    title: string;
                                    description: string;
                                    'x-decorator': string;
                                    'x-disabled': string;
                                    'x-component': string;
                                    'x-component-props': {
                                        allowClear: boolean;
                                    };
                                };
                            };
                        };
                        col13: {
                            type: string;
                            'x-component': string;
                            properties: {
                                target: {
                                    type: string;
                                    title: string;
                                    required: boolean;
                                    'x-reactions': string[];
                                    'x-decorator': string;
                                    'x-component': string;
                                    'x-disabled': string;
                                };
                            };
                        };
                    };
                };
                row2: {
                    type: string;
                    'x-component': string;
                    properties: {
                        col21: {
                            type: string;
                            'x-component': string;
                            properties: {
                                sourceKey: {
                                    type: string;
                                    title: string;
                                    description: string;
                                    'x-decorator': string;
                                    'x-component': string;
                                    'x-disabled': string;
                                };
                            };
                        };
                        col22: {
                            type: string;
                            'x-component': string;
                            properties: {
                                foreignKey: {
                                    type: string;
                                    title: string;
                                    required: boolean;
                                    default: string;
                                    description: string;
                                    'x-decorator': string;
                                    'x-component': string;
                                    'x-validator': string;
                                    'x-disabled': string;
                                };
                            };
                        };
                        col23: {
                            type: string;
                            'x-component': string;
                            properties: {};
                        };
                    };
                };
                row3: {
                    type: string;
                    'x-component': string;
                    properties: {
                        col21: {
                            type: string;
                            'x-component': string;
                            properties: {};
                        };
                        col22: {
                            type: string;
                            'x-component': string;
                            properties: {
                                otherKey: {
                                    type: string;
                                    title: string;
                                    required: boolean;
                                    default: string;
                                    description: string;
                                    'x-decorator': string;
                                    'x-component': string;
                                    'x-validator': string;
                                    'x-disabled': string;
                                };
                            };
                        };
                        col23: {
                            type: string;
                            'x-component': string;
                            properties: {
                                targetKey: {
                                    type: string;
                                    title: string;
                                    'x-decorator': string;
                                    'x-component': string;
                                    'x-disabled': string;
                                    description: string;
                                };
                            };
                        };
                    };
                };
            };
        };
        'uiSchema.title': {
            type: string;
            title: string;
            required: boolean;
            'x-decorator': string;
            'x-component': string;
        };
        name: {
            type: string;
            title: string;
            required: boolean;
            'x-disabled': string;
            'x-decorator': string;
            'x-component': string;
            'x-validator': string;
            description: string;
        };
    };
    filterable: {
        nested: boolean;
        operators: ({
            label: string;
            value: string;
            selected: boolean;
            noValue?: undefined;
        } | {
            label: string;
            value: string;
            selected?: undefined;
            noValue?: undefined;
        } | {
            label: string;
            value: string;
            noValue: boolean;
            selected?: undefined;
        })[];
        children: any[];
    };
}
