<?php
declare(strict_types=1);

namespace PpPhp\Core\IconManager\Contracts;

use PpPhp\Core\IconManager\IconDefinition;

interface IconPackInterface
{
    public static function id(): string;
    public static function label(): string;
    public static function version(): string;
    public static function family(): string;

    /** @return array<string, string> */
    public static function assets(): array;

    /** @return array<string, mixed> */
    public static function metadata(): array;

    /** @return array<int, IconDefinition> */
    public static function icons(): array;

    /** @return array<int, IconDefinition> */
    public static function search(string $term, int $limit = 100): array;
}
