import { Getter } from '@loopback/core'; import { Count, Filter, FilterExcludingWhere, Where } from '@loopback/repository'; import { RequestContext, SchemaRef } from '@loopback/rest'; import { CrudRestControllerOptions } from '@loopback/rest-crud'; import { EntityRelationType, ICrudService, IdType } from '../../common/types'; import { IJWTTokenPayload } from '../../components/authenticate/common/types'; import { BaseEntity, TBaseTzEntity } from '../models'; export interface IServiceCrudControllerOptions { entity: typeof BaseEntity & { prototype: E; }; service: { name: string; }; controller: CrudRestControllerOptions & { defaultLimit?: number; }; schema?: { find?: SchemaRef; findOne?: SchemaRef; findById?: SchemaRef; count?: SchemaRef; createRequestBody?: SchemaRef; create?: SchemaRef; updateAll?: SchemaRef; updateByIdRequestBody?: SchemaRef; updateById?: SchemaRef; replaceById?: SchemaRef; deleteById?: SchemaRef; }; options?: { doInjectCurrentUser?: boolean; }; } export declare const defineServiceCrudController: (opts: IServiceCrudControllerOptions) => { new (requestContext: RequestContext, service: ICrudService, getCurrentUser?: Getter): { requestContext: RequestContext; service: ICrudService; getCurrentUser?: Getter; defaultLimit: number; _getContextUser(): Promise<{ userId: IdType; roles: { id: IdType; identifier: string; priority: number; }[]; }>; find(filter?: Filter): Promise>; findById(id: IdType, filter?: FilterExcludingWhere): Promise; findOne(filter?: Filter): Promise<(E & EntityRelationType) | null>; count(where?: Where): Promise; }; }; //# sourceMappingURL=service-crud.controller.d.ts.map