import { ModuleMetadata, Provider, Type } from '@nestjs/common'; import { ModuleRef } from '@nestjs/core'; import { DeepPartial, EntityOptions, EntitySubscriberInterface } from 'typeorm'; import { FindManyParams } from '../..'; import { EntityControllerConstructor } from '../createEntityController'; import { ICaliobaseController } from '../ICaliobaseController'; import { ICaliobaseServiceType } from '../ICaliobaseService'; import { PolicyStatements } from './AccessPolicies.decorator'; type EntitySubscriberInput = Omit, 'listenTo'>; export type CaliobaseEntityOptions = { imports?: ModuleMetadata['imports']; entity?: EntityOptions; controller?: { name: string; defaultFindParams?: FindManyParams; /** @deprecated */ defaultOrderBy?: string[]; extend?: (controllerClass: EntityControllerConstructor, serviceClass: ICaliobaseServiceType, DeepPartial>) => Type>; }; subscribers?: Array<((moduleRef: ModuleRef) => EntitySubscriberInput) | EntitySubscriberInput>; providers?: Provider[]; accessPolicy?: PolicyStatements; organizationOwner?: false; }; export declare const CaliobaseEntity: ((options?: CaliobaseEntityOptions) => (target: new (...args: unknown[]) => TFunction) => void) & { get(target: Type): CaliobaseEntityOptions | undefined; }; export {};