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 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[];
    getAllFields(predicate?: GetCollectionFieldPredicate): CollectionFieldOptions[];
    getForeignKeyFields(): CollectionFieldOptions[];
}
