<?php
/**
 * Module settings repository contract.
 *
 * Phase 1 facade over {@see OptionStore}. Phase 2 may introduce per-module
 * storage backends while keeping this contract stable for callers.
 *
 * @package WP_PowerSuite\Core\Contracts
 * @since 1.1.0
 */

namespace WP_PowerSuite\Core\Contracts;

interface ModuleSettingsRepository {

	/**
	 * @param array<string, mixed> $default
	 * @return array<string, mixed>
	 */
	public function all( array $default = [] ): array;

	/**
	 * @param array<string, mixed> $settings
	 */
	public function save( array $settings ): bool;

	public function isEnabled(): bool;
}
