/**
 * This file is part of the NocoBase (R) project.
 * Copyright (c) 2020-2024 NocoBase Co., Ltd.
 * Authors: NocoBase Team.
 *
 * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
 * For more information, please refer to: https://www.nocobase.com/agreement.
 */
import type { CollectionFieldOptions, GetCollectionFieldPredicate } from '../../data-source';
import { Collection } from '../../data-source/collection/Collection';
export declare class InheritanceCollectionMixin extends Collection {
    protected parentCollectionsName: string[];
    protected parentCollections: Collection[];
    protected childrenCollections: {
        supportView?: Collection[];
        notSupportView?: Collection[];
    };
    protected childrenCollectionsName: {
        supportView?: string[];
        notSupportView?: string[];
    };
    protected inheritsFields: CollectionFieldOptions[];
    protected currentFields: CollectionFieldOptions[];
    protected allFields: CollectionFieldOptions[];
    protected parentCollectionFields: Record<string, CollectionFieldOptions[]>;
    protected allCollectionsInheritChain: string[];
    protected inheritCollectionsChain: string[];
    protected inheritChain: string[];
    protected foreignKeyFields: CollectionFieldOptions[];
    getParentCollectionsName(): string[];
    getParentCollections(): Collection[];
    getChildrenCollectionsName(isSupportView?: boolean): string[];
    getChildrenCollections(isSupportView?: boolean): Collection[];
    getInheritedFields(): CollectionFieldOptions[];
    protected getFieldsMap(): Record<string, CollectionFieldOptions>;
    getCurrentFields(predicate?: GetCollectionFieldPredicate): CollectionFieldOptions[];
    getParentCollectionFields(parentCollectionName: string): CollectionFieldOptions[];
    getAllCollectionsInheritChain(): string[];
    getInheritCollectionsChain(): string[];
    /**
     * 获取所有祖先数据表和后代数据表，不包括兄弟表。用于下面这些地方：
     * - 筛选区块链接数据区块时使用
     */
    getInheritChain(): string[];
    getAllFields(predicate?: GetCollectionFieldPredicate): CollectionFieldOptions[];
    getForeignKeyFields(): CollectionFieldOptions[];
}
