import { ComponentClass, ReactNode } from 'react'; import { CurdBaseProps, CurdColumn } from '../../components/curd'; import { DataGridProps, RowType } from '../../components/dataGrid'; import { FormValue } from '../../components/form'; import { Id } from '../../types'; /** * @example * ```ts * @CURD() * class ExampleComponent extends React.Component { * @CURD.Column({title: '姓名'}) * username!: string * * @CURD.Column({title: '性别'}) * gender(row: RowType) { * return row.gender === 'male' ? '男' : '女' * } * * @CURD.OnCreate() * onCreate(formValue: FormValue) { * * } * } * ``` */ /** * ------------------------------------------------------------------- * 类修饰器 */ export declare function CURD(props?: CurdBaseProps): (target: T) => T; export declare namespace CURD { var Column: typeof import("./curd").Column; var LoadRows: typeof import("./curd").LoadRows; var OnReload: typeof import("./curd").OnReload; var OnFilter: typeof import("./curd").OnFilter; var OnCreate: typeof import("./curd").OnCreate; var OnUpdate: typeof import("./curd").OnUpdate; var OnDelete: typeof import("./curd").OnDelete; var RowToForm: typeof import("./curd").RowToForm; } export declare function DATA_GRID(props?: DataGridProps): (target: T) => T; export declare namespace DATA_GRID { var Column: typeof import("./curd").Column; var LoadRows: typeof import("./curd").LoadRows; var OnReload: typeof import("./curd").OnReload; var OnFilter: typeof import("./curd").OnFilter; var OnCreate: typeof import("./curd").OnCreate; var OnUpdate: typeof import("./curd").OnUpdate; var OnDelete: typeof import("./curd").OnDelete; var RowToForm: typeof import("./curd").RowToForm; } type ColumnDecorator = (prototype: Object, property: string, descriptor?: TypedPropertyDescriptor) => void; export declare function Column(title: ReactNode): ColumnDecorator; export declare function Column(params?: CurdColumn): ColumnDecorator; export declare namespace Column { var Hide: typeof import("./curd").Hide; var Sort: typeof import("./curd").Sort; var Filter: typeof import("./curd").Filter; var Form: typeof import("./curd").Form; } export declare function Hide(): ColumnDecorator; export declare function Hide(prototype: Object, property: string, descriptor?: TypedPropertyDescriptor): void; export declare function Sort(compareFn?: (a: R, b: R) => number): ColumnDecorator; export declare function Sort(prototype: Object, property: string, descriptor?: TypedPropertyDescriptor): void; export declare function Filter(config?: CurdColumn['filter']): ColumnDecorator; export declare function Filter(prototype: Object, property: string, descriptor?: TypedPropertyDescriptor): void; export declare function Form(config?: CurdColumn['form']): ColumnDecorator; export declare function Form(prototype: Object, property: string, descriptor?: TypedPropertyDescriptor): void; /** * ------------------------------------------------------------------- * 方法修饰器 */ type MethodDecorator = (prototype: Object, property: string, descriptor: TypedPropertyDescriptor) => void; export declare function LoadRows(): MethodDecorator; export declare function LoadRows(prototype: Object, property: string, descriptor: TypedPropertyDescriptor): void; export declare function OnReload(): MethodDecorator; export declare function OnReload(prototype: Object, property: string, descriptor: TypedPropertyDescriptor): void; export declare function OnFilter(): MethodDecorator; export declare function OnFilter(prototype: Object, property: string, descriptor: TypedPropertyDescriptor): void; export declare function OnCreate(): MethodDecorator; export declare function OnCreate(prototype: Object, property: string, descriptor: TypedPropertyDescriptor): void; export declare function OnUpdate(): MethodDecorator; export declare function OnUpdate(prototype: Object, property: string, descriptor: TypedPropertyDescriptor): void; export declare function OnDelete(): MethodDecorator; export declare function OnDelete(prototype: Object, property: string, descriptor: TypedPropertyDescriptor): void; export declare function RowToForm(): MethodDecorator; export declare function RowToForm(prototype: Object, property: string, descriptor: TypedPropertyDescriptor): void; export {};