import { AggregateSpec, OrderDirectionEnum, RelationOptions, WhereOptions } from '../types'; import { CanActivate, NestInterceptor, RequestMethod, Type, ValidationPipeOptions } from '@nestjs/common'; type Guard = Type | CanActivate | ((...args: any[]) => CanActivate); type Interceptor = Type | NestInterceptor | ((...args: any[]) => NestInterceptor); type CrudDecorator = PropertyDecorator | MethodDecorator; export interface RouteOptions { path: string; method: RequestMethod; enabled?: boolean; guards?: Guard[]; interceptors?: Interceptor[]; decorators?: CrudDecorator[]; } export type RouteOptionsWithName = RouteOptions & { name: CrudActionsEnum; }; export type CrudRoutesOptions = Record | boolean>; export interface CrudQueryOptions { relations?: string[]; } export interface CrudMessages { deleted?: string; noItemsToDelete?: string; restored?: string; reordered?: string; } export interface CrudOptions { debug?: boolean; name?: string; path?: string; select?: string[]; hiddenFields?: string[]; maxPerPage?: number; maxPageSize?: number; query?: CrudQueryOptions; entity: any; routes?: Partial; softDelete?: boolean; messages?: CrudMessages; validation?: ValidationPipeOptions; dto?: { create?: any; update?: any; }; } export interface PaginationResponse { items: T[]; total: number; } export type ListResponse = PaginationResponse; export type FindAllResponse = T[]; export declare enum CrudValidationGroupsEnum { CREATE = "create", UPDATE = "update" } export declare enum CrudActionsEnum { FIND_ALL = "findAll", FIND_MANY = "findMany", COUNTS = "counts", FIND_ONE = "findOne", CREATE = "create", CREATE_MANY = "createMany", UPDATE = "update", UPDATE_MANY = "updateMany", DELETE = "delete", DELETE_MANY = "deleteMany", DELETE_FROM_TRASH = "deleteFromTrash", DELETE_FROM_TRASH_MANY = "deleteFromTrashMany", RESTORE = "restore", RESTORE_MANY = "restoreMany", REORDER = "reorder" } export interface IFindManyOptions { relations?: RelationOptions; skip?: number; offset?: number; take?: number; order?: Record; where?: WhereOptions; select?: string[]; aggregates?: AggregateSpec[]; having?: WhereOptions; onlyDeleted?: boolean; withDeleted?: boolean; [extraQueryParams: string]: any; } export interface IFindOneOptions { relations?: string[]; select?: string[]; [extraQueryParams: string]: any; } export interface ICountsRequest { filter: IFindManyOptions; groupByKey?: string | string[]; [extraQueryParams: string]: any; } export interface ICountsResult { total: number; data?: Array<{ count: number; } & Record>; } export interface IDeleteManyOptions { ids?: string[]; [extraQueryParams: string]: any; } export {}; //# sourceMappingURL=crud.d.ts.map