import { ColumnAnnotation, AnyConstructor } from './Column';
import { FetchType } from './FetchType';
import { PermissionAnnotation } from './Permission';
import { DataModelPrivilegeBase } from '@themost/common';
declare interface ElementCollectionAnnotation extends PermissionAnnotation {
    optional?: boolean;
    fetchType?: FetchType;
    targetClass?: string | AnyConstructor<unknown>;
    privileges?: DataModelPrivilegeBase[];
}
declare interface ElementCollectionColumnAnnotation extends ColumnAnnotation {
    elementCollection?: ElementCollectionAnnotation;
}
declare function ElementCollection(annotation?: ElementCollectionAnnotation): PropertyDecorator;
export { ElementCollectionAnnotation, ElementCollectionColumnAnnotation, ElementCollection };
