import { Constructor } from '../../util'; import { PolarisMicrocontrollerFactoryMetadata } from './polaris-microcontroller-factory-metadata'; import { PolarisTransformationMetadata } from './polaris-transformation-metadata'; /** * Provides utility methods for manipulating Polaris metadata using the Reflect API. */ export declare class PolarisMetadataUtils { /** * Gets the `PolarisTransformationMetadata` that has been applied to the constructor of the type `T`. * * @note The `PolarisTransformationMetadata` of a parent class is only considered if its `inheritable` property has been set to `true`. * * @returns The `PolarisTransformationMetadata` of the `target` object or `undefined` if `target` does not have this metadata. */ static getPolarisTransformationMetadata(target: T | Constructor): PolarisTransformationMetadata; /** * Sets the specified `PolarisTransformationMetadata` on the `target` object. */ static setPolarisTransformationMetadata(metadata: PolarisTransformationMetadata, target: Constructor): void; /** * Gets the `PolarisMicrocontrollerFactoryMetadata` that has been applied to the constructor of the type `T` or one of its parents. * * @returns The `PolarisMicrocontrollerFactoryMetadata` of the `target` object or one of its parents, * or `undefined` if the `target` type hierarchy does not have this metadata. */ static getPolarisMicrocontrollerFactoryMetadata(target: T | Constructor): PolarisMicrocontrollerFactoryMetadata; /** * Sets the specified `PolarisTransformationMetadata` on the `target` object. */ static setPolarisMicrocontrollerFactoryMetadata(metadata: PolarisMicrocontrollerFactoryMetadata, target: Constructor): void; /** * Gets the type that has been defined for the property `propertyKey` of the class `target` using * the `@PolarisType` decorator. * * If no type has been defined for the `target` class, the prototype hierarchy is traversed upwards. * * @returns The type that has been defined for the specified property or `undefined` if this information is not available. */ static getPropertyPolarisType(target: Constructor, propertyKey: keyof T & string): Constructor; /** * Sets the type that has been defined for the property `propertyKey` of the class `target` using * the `@PolarisType` decorator. */ static setPropertyPolarisType(target: Constructor, propertyKey: keyof T & string, propertyType: Constructor): void; private static coerceToConstructor; private static getPropertyMetadataKey; }