) $type * * @formatter:off * * @param string|array $type - Data type of the property. * * @formatter:on * * @return static */ public function type( $type ); /** * Set the default value for this attribute. * * @param mixed $value Default value. * * @return static */ public function default( $value ); /** * Set the enum values for this attribute. * * @param list $values Enum values. * * @return static */ public function enum( array $values ); /** * Convert the attribute to a PHP array format. * * @phpstan-return ATTR_SHAPE * * @return array - Attribute is a standard array format. */ public function to_array(): array; /** * Load the attribute. * * @phpstan-param ATTR_SHAPE $attribute * * @param array $attribute - Attribute is a standard array format. * * @return static */ public static function factory( array $attribute ); }