import { TNewable } from "@sugoi/core"; import { HTTP_METHOD } from "../constants/methods.constant"; import { TStringOrNumber } from "../decorators"; import { ICRUDOptions } from "../interfaces/crud-options.interface"; export declare class CRUDControllerFactory { static of(model: TNewable, options?: ICRUDOptions): TCRUDController; protected static getCRUDController(model: TNewable, options: ICRUDOptions): any; } export declare abstract class CRUDControllerBuilder { static resourceClass: any; static allowedMethods: Set; static isSugCRUDController: boolean; static authorized(): TCRUDController; static hasRole(...roles: TStringOrNumber[]): TCRUDController; static hasPermissions(...permissions: TStringOrNumber[]): TCRUDController; static setAllowedMethods(...methods: Array): TCRUDController; static verifyMethod(method: HTTP_METHOD): boolean; static allowAllMethods(): void; getResourceClass(): any; } export declare function CRUDController(model: any, options?: ICRUDOptions): (target: any) => any; export declare type TCRUDController = typeof CRUDControllerBuilder;