export declare const MODEL_MAPPING_FIELDS_KEY = "_mapping_fields_"; export declare const MODEL_RELATION_KEY = "_relation_"; export declare const MODEL_TO_FRONT_KEY = "_to_front_"; export declare const MODEL_TO_BACK_KEY = "_to_back_"; interface ModelTypeInterface { new (data?: any): any; } export interface ModelInterface { toFront(dto: any): any; toBack(dto: any): any; } export declare abstract class BaseModel { constructor(data?: { [key: string]: any; }); static toFront(dto: any): any; static toBack(dto: any): any; } export declare function enumField(enumClass: any): { toFront: (value: any) => any; toBack: (value: any) => any; }; export declare function penaltyTypeField(): { toFront: (data: any) => any; toBack: (data: any) => any; }; export declare function listField(modelClass: any): { toFront: (value: any) => any[]; toBack: (value: any) => any[]; }; export declare class DateField extends BaseModel { static toFront(date: any): any; static toBack(date: Date): any; } export declare class DateTimeField extends BaseModel { static toFront(date: any): any; static toBack(date: Date): any; } export declare function ModelInstance(config: { mappingFields?: { [key: string]: string; }; relation?: { [key: string]: BaseModel; }; }): (target: ModelTypeInterface) => void; export declare const ToFrontHook: (target: ModelTypeInterface, key: string | symbol, descriptor: TypedPropertyDescriptor) => { value: (...args: any[]) => any; }; export declare const ToBackHook: (target: ModelTypeInterface, key: string | symbol, descriptor: TypedPropertyDescriptor) => { value: (...args: any[]) => any; }; export {};