import { TPropertyDecoratorReturn } from "./TPropertyDecoratorReturn"; /** * 속성의 GET/SET 을 Interupt 하여 사용하는 Decorator를 위한 기본 함수 * * @template O 클래스 타입 * @template K 클래스내 속성명 */ export declare function PropertyGetSetDecoratorBase(arg: IPropertyGetSetDecoratorBaseParam): TPropertyDecoratorReturn; /** * {@link PropertyGetSetDecoratorBase} 의 Parameter * * @template O 클래스 타입 * @template K 클래스내 속성명 * */ export interface IPropertyGetSetDecoratorBaseParam { /** * 값이 설정 되기 전에 수행할 함수 * * @param target 객체 * @param propertyName 속성명 * @param oldValue SET 이전값 * @param newValue SET 이후값 */ beforeSet?: (target: O, propertyName: K, oldValue: O[K], newValue: O[K]) => O[K] | undefined; /** * 값이 설정 된 직후, 수행할 함수 * * @param target 객체 * @param propertyName 속성명 * @param oldValue SET 이전값 * @param newValue SET 이후값 */ afterSet?: (target: O, propertyName: K, oldValue: O[K], newValue: O[K]) => void; /** * 누군가 GET 을 시도할때, GET 되기 전, 수행할 함수 * * @param target 객체 * @param propertyName 속성명 * @param value GET 처리될 현재 값 */ get?: (target: O, propertyName: K, value: O[K]) => void; }