/** * A conservative set of decorators intended for use in both NodeJS and web browser projects. * * @remarks * This package provides a small set of decorators that enable more rigorous specification * of API contracts when using the TypeScript language. The intent is to better document * expected behaviors and catch common mistakes. This package is not intended to be a * general toolkit of language extensions or helpful macros. * * @packagedocumentation */ /** * This decorator is applied to a class's member function or property. * It indicates that the definition overrides another definition (of the same name) * from the base class. The base class definition must be marked as \@virtual. * This decorator is currently used for documentation purposes only. * In the future, it may be enforced at runtime. * * @public */ export declare function override(target: object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor): void; /** * This decorator is applied to a class (but NOT member function or property). * It indicates that subclasses must not inherit from this class. * This decorator is currently used for documentation purposes only. * In the future, it may be enforced at runtime. * * @public */ export declare function sealed(target: Function): void; /** * This decorator is applied to a class's member function or property. * It indicates that the definition may optionally be overridden in a * child class. Conversely, if the \@virtual decorator is NOT applied to * a definition, then child classes may NOT override it. * This decorator is currently used for documentation purposes only. * In the future, it may be enforced at runtime. * * @public */ export declare function virtual(target: object, propertyKey: string | symbol, descriptor: TypedPropertyDescriptor): void; export { }