import "./_dnt.polyfills.js"; import type { Func } from "./func.js"; export type ClassAccessorDecorator = ClassAccessorDecoratorReturn> = (target: ClassAccessorDecoratorTarget, context: ClassAccessorDecoratorContext) => R; type ClassAccessorDecoratorReturn = void | ClassAccessorDecoratorResult; /** * 用于对 accessor 的修饰 */ export declare const accessor: (builder: ClassAccessorDecorator) => ClassAccessorDecorator; /** * 用于对 accessor 的修饰,提供强类型安全的返回 */ export declare const safeAccessor: () => >(builder: ClassAccessorDecorator) => ClassAccessorDecorator; export type ClassGetterDecorator = ClassGetterDecoratorReturn> = (target: (this: T) => V, context: ClassGetterDecoratorContext) => R; export type ClassGetterDecoratorReturn = void | ((this: T) => V); /** * 用于对 getter 的修饰 */ export declare const getter: (builder: ClassGetterDecorator) => ClassGetterDecorator; /** * 用于对 getter 的修饰,提供强类型安全的返回 */ export declare const safeGetter: () => >(builder: ClassGetterDecorator) => ClassGetterDecorator; /** * 用于在 getter 之前做一些动作 */ export declare const beforeGetter: (before: Func) => ClassGetterDecorator; /** * 用于在 getter 之后做一些动作 */ export declare const afterGetter: (after: Func) => ClassGetterDecorator; /** * 用于对 getter 做一个拦截 */ export declare const wrapGetter: (wrap: (this: T, get: () => V) => V) => ClassGetterDecorator; export type ClassSetterDecorator = ClassSetterDecoratorReturn> = (target: (this: T, value: V) => void, context: ClassSetterDecoratorContext) => R; export type ClassSetterDecoratorReturn = void | ((this: T, value: V) => void); /** * 用于对 setter 的修饰 */ export declare const setter: (builder: ClassSetterDecorator) => ClassSetterDecorator; /** * 用于对 setter 的修饰,提供强类型安全的返回 */ export declare const safeSetter: () => >(builder: ClassSetterDecorator) => ClassSetterDecorator; /** * 用于在 setter 之前做一些动作 */ export declare const beforeSetter: (before: Func) => ClassSetterDecorator; /** * 用于在 setter 之后做一些动作 */ export declare const afterSetter: (after: Func) => ClassSetterDecorator; /** * 用于对 setter 做一个拦截 */ export declare const wrapSetter: (wrap: (this: T, value: V, set: Func) => void) => ClassSetterDecorator; export type ClassFieldDecorator = ClassFieldDecoratorReturn> = (target: undefined, context: ClassFieldDecoratorContext) => R; export type ClassFieldDecoratorReturn = void | ((this: T, value: V) => V); /** * 用于对普通字段做修饰 * @param builder * @returns */ export declare const field: (builder: ClassFieldDecorator) => ClassFieldDecorator; /** * 用于对普通字段做修饰,提供强类型安全的返回 */ export declare const safeField: () => >(builder: ClassFieldDecorator) => ClassFieldDecorator; type Method = (this: T, ...args: any) => any; export type ClassMethodDecorator, R extends ClassMethodDecoratorReturn = ClassMethodDecoratorReturn> = (target: M, context: ClassMethodDecoratorContext) => R; export type ClassMethodDecoratorReturn> = void | M; /** * 用于对类方法做修饰 * @param builder * @returns */ export declare const method: >(builder: ClassMethodDecorator) => ClassMethodDecorator; /** * 用于对类方法做修饰,提供强类型安全的返回 */ export declare const safeMethod: >() => >(builder: ClassMethodDecorator) => ClassMethodDecorator; export declare const bindThis: >() => ClassMethodDecorator; type Class = abstract new (...args: any) => any; export type ClassDecorator = (target: C, context: ClassDecoratorContext) => void; export declare const Class: (builder: ClassDecorator) => ClassDecorator; export {}; //# sourceMappingURL=decorators.d.ts.map