File "Storage.php"
Full Path: /var/www/drive/laravel/pulse/src/Contracts/Storage.php
File size: 2.72 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace Laravel\Pulse\Contracts;
use Carbon\CarbonInterval;
use Illuminate\Support\Collection;
interface Storage
{
/**
* Store the items.
*
* @param \Illuminate\Support\Collection<int, \Laravel\Pulse\Entry|\Laravel\Pulse\Value> $items
*/
public function store(Collection $items): void;
/**
* Trim the storage.
*/
public function trim(): void;
/**
* Purge the storage.
*
* @param list<string> $types
*/
public function purge(?array $types = null): void;
/**
* Retrieve values for the given type.
*
* @param list<string> $keys
* @return \Illuminate\Support\Collection<string, object{
* timestamp: int,
* key: string,
* value: string
* }>
*/
public function values(string $type, ?array $keys = null): Collection;
/**
* Retrieve aggregate values for plotting on a graph.
*
* @param list<string> $types
* @param 'count'|'min'|'max'|'sum'|'avg' $aggregate
* @return \Illuminate\Support\Collection<string, \Illuminate\Support\Collection<string, \Illuminate\Support\Collection<string, int|null>>>
*/
public function graph(array $types, string $aggregate, CarbonInterval $interval): Collection;
/**
* Retrieve aggregate values for the given type.
*
* @param 'count'|'min'|'max'|'sum'|'avg'|list<'count'|'min'|'max'|'sum'|'avg'> $aggregates
* @return \Illuminate\Support\Collection<int, object{
* key: string,
* min?: int,
* max?: int,
* sum?: int,
* avg?: int,
* count?: int
* }>
*/
public function aggregate(
string $type,
string|array $aggregates,
CarbonInterval $interval,
?string $orderBy = null,
string $direction = 'desc',
int $limit = 101,
): Collection;
/**
* Retrieve aggregate values for the given types.
*
* @param string|list<string> $types
* @param 'count'|'min'|'max'|'sum'|'avg' $aggregate
* @return \Illuminate\Support\Collection<int, object>
*/
public function aggregateTypes(
string|array $types,
string $aggregate,
CarbonInterval $interval,
?string $orderBy = null,
string $direction = 'desc',
int $limit = 101,
): Collection;
/**
* Retrieve an aggregate total for the given types.
*
* @param string|list<string> $types
* @param 'count'|'min'|'max'|'sum'|'avg' $aggregate
* @return float|\Illuminate\Support\Collection<string, int>
*/
public function aggregateTotal(
array|string $types,
string $aggregate,
CarbonInterval $interval,
): float|Collection;
}