*/ public function get_group_choices(): array; /** * @param string[] $include_only_types * * @return array */ public function get_field_choices( array $include_only_types = array(), // todo different response must be separate methods, see ugly Field_Provider_Cluster::get_label_choices workaround. bool $is_meta_format = false, bool $is_field_name_as_label = false ): array; /** * @return array */ public function get_sub_field_choices( // todo must be separate methods, same as get_field_choices. bool $is_meta_format = false, bool $is_field_name_as_label = false ): array; /** * @return array> */ public function get_field_key_conditional_rules( bool $is_sub_fields = false ): array; /** * @return string[] */ public function get_supported_field_types(): array; public function get_markup_field_instance( string $field_type ): ?Markup_Field; public function is_empty_value_supported_in_markup( string $field_type ): bool; /** * @param mixed[] $data */ public function fill_field_meta( Field_Meta $field_meta, array $data = array() ): void; /** * @param array|null $local_data * * @return mixed */ public function get_field_value( Field_Settings $field_settings, Field_Meta $field_meta, Source $source, ?Item_Settings $item_settings = null, bool $is_formatted = false, ?array $local_data = null ); public function convert_string_to_date_time( Field_Meta $field_meta, string $value ): ?DateTime; public function convert_date_to_string_for_db_comparison( DateTime $date_time, Field_Meta $field_meta ): string; /** * @return string[] */ public function get_field_front_assets( Field_Settings $field_settings ): array; /** * @return string[] */ public function get_field_types_with_sub_fields(): array; /** * @return null|array{title:string,url:string} */ public function get_group_link_by_group_id( string $group_id ): ?array; /** * @return mixed[]|null */ public function get_group_export_data( string $group_id ): ?array; /** * @param mixed[] $groups_data * * @return array */ public function get_export_meta_data( array $groups_data ): array; /** * @param mixed[] $group_data * @param mixed[] $meta_data */ public function import_group( array $group_data, array $meta_data ): ?string; }