<?php

declare(strict_types=1);

namespace Automattic\WooCommerce\Api\Infrastructure\Schema;

/**
 * Stable subclass of the underlying GraphQL engine's InterfaceType, used by
 * autogenerated interface types.
 *
 * The constructor accepts the same associative-array config the current
 * engine (webonyx) documents (keys: `name`, `description`, `fields`,
 * `resolveType`).
 *
 * A `metadata` config key may also be provided; see
 * {@see ObjectType::get_metadata()} for the semantics.
 */
class InterfaceType extends \Automattic\WooCommerce\Vendor\GraphQL\Type\Definition\InterfaceType {
	/**
	 * Type-level metadata entries declared in the config, keyed by name.
	 *
	 * @return array<string, bool|int|float|string|null>
	 */
	public function get_metadata(): array {
		return $this->config['metadata'] ?? array();
	}
}
