///
///
import _apiFeatures from './api/api-features';
import _appError from './mongoose/app-error';
import _middleware from './api/middleware';
export declare const AppError: typeof _appError;
export declare const catchAsync: (fn: any) => (req: import("express").Request>, res: import("express").Response>, next: import("express").NextFunction) => void;
export declare const dbConnect: (databaseUri: string, logErr?: boolean) => Promise;
export declare const mongoFactory: {
deleteOne: (Model: import("mongoose").Model, id: string | import("mongoose").Schema.Types.ObjectId, next: import("express").NextFunction, message?: string | undefined) => Promise>;
deleteMany: (Model: import("mongoose").Model, ids: import("mongoose").Types.ObjectId[]) => Promise;
deleteSingle: (Model: import("mongoose").Model, queryObj: {}, next: import("express").NextFunction, message?: string | undefined) => Promise<{
doc: import("mongodb").DeleteResult;
total: number;
}>;
updateSingle: (Model: import("mongoose").Model, queryObj: {}, dto: {}, next: import("express").NextFunction, message?: string | undefined) => Promise>;
updateOne: (Model: import("mongoose").Model, id: string | import("mongoose").Schema.Types.ObjectId, dto: {}, next: import("express").NextFunction, message?: string | undefined) => Promise>;
updateMany: (Model: import("mongoose").Model, queryObj: {}, dto: {}, next: import("express").NextFunction, message?: string | undefined) => Promise;
createOne: (Model: import("mongoose").Model, dto: {}) => Promise>;
createMany: (Model: import("mongoose").Model, dto: {}[]) => Promise[]>;
getOne: (Model: import("mongoose").Model, id: string | import("mongoose").Schema.Types.ObjectId, next: import("express").NextFunction, popOptions?: any, select?: string | {} | undefined, message?: string | undefined) => Promise;
getAll: (Model: import("mongoose").Model, query?: any, filter?: string | {} | undefined, select?: string | {} | undefined) => Promise<{
doc: import("mongoose").HydratedDocument[];
total: number;
}>;
single: (Model: import("mongoose").Model, queryObj: {}, next: import("express").NextFunction, message?: string | undefined, select?: string | {} | undefined, popOptions?: any) => Promise;
count: (Model: import("mongoose").Model, query?: {} | undefined) => Promise;
};
export declare const FilterObj: (obj: object, ...allowedFields: string[]) => {};
export declare const globalErrorHandler: (err: any, res: import("express").Response>, env?: string) => void;
export declare const responseHandler: {
success: (data: any, meta?: {}) => import("./common/types/custom-http-response").default;
error: (data: any, meta?: {}) => import("./common/types/custom-http-response").default;
send: (response: import("./common/types/custom-http-response").default, res: import("express").Response>, action: import("./common/enums/http-action.enum").HttpAction, statusCode?: import("./common/enums/http-status.enum").HttpStatus | undefined) => import("express").Response>;
emit: (data: any, meta: {} | undefined, res: import("express").Response>, action: import("./common/enums/http-action.enum").HttpAction, success?: boolean | undefined, statusCode?: import("./common/enums/http-status.enum").HttpStatus | undefined) => import("express").Response>;
};
export declare const APIFeatures: typeof _apiFeatures;
export declare const middleware: typeof _middleware;