Lines n/a 0 / 0
Functions and Methods n/a 0 / 0
Classes and Traits n/a 0 / 0
Name Lines Functions and Methods CRAP Classes and Traits
1<?php
2
3declare(strict_types=1);
4
5namespace Stewart\Contracts\Exposure;
6
7use Stewart\Contracts\EventStream;
8use Stewart\Contracts\Exception\ExposureException;
9use Stewart\Contracts\Exposure\Command\TimeCommand;
10use Stewart\Contracts\Schedule\TimeOfDay;
11
12/** @phpstan-import-type ExposedAttributes from ExposedEntity */
13interface ExposedTime extends ExposedEntity
14{
15    public function getConfig(): TimeConfig;
16
17    /** @throws ExposureException */
18    public function updateConfig(TimeConfig $config): void;
19
20    public function getValue(): ?TimeOfDay;
21
22    /**
23     * @param ExposedAttributes|null $attributes
24     * @throws ExposureException
25     */
26    public function setValue(?TimeOfDay $value, ?array $attributes = null): void;
27
28    /** @return EventStream<TimeCommand> */
29    public function watchCommands(): EventStream;
30}