import TCustomErrors from "@edonec/custom-error/errorsTypes"; import { IRouter, Router, RouterOptions } from "express"; import { PRIVILEGE } from "./resources/access"; import { AccessResourcesType } from "./resources/AccessResourcesType"; type ExtraMethods = { getProtected: (resource: T[keyof T], privilege: PRIVILEGE) => IRouter["get"]; putProtected: (resource: T[keyof T], privilege: PRIVILEGE) => IRouter["put"]; postProtected: (resource: T[keyof T], privilege: PRIVILEGE) => IRouter["post"]; patchProtected: (resource: T[keyof T], privilege: PRIVILEGE) => IRouter["patch"]; deleteProtected: (resource: T[keyof T], privilege: PRIVILEGE) => IRouter["delete"]; }; export type TCustomRouter = Router & ExtraMethods; declare const CustomRouter: (eventSender: (payload: TCustomErrors) => void, _accessResources?: T | undefined) => (options?: RouterOptions | undefined) => TCustomRouter; export default CustomRouter;