<?php

declare(strict_types=1);

namespace App\Framework\Encryption;

/**
 * Interface for encryption strategies
 */
interface EncryptionInterface
{
    /**
     * Encrypt data with optional prefix/suffix markers
     */
    public function encrypt(string $data): string;

    /**
     * Decrypt data, automatically handling markers
     */
    public function decrypt(string $encryptedData): string;

    /**
     * Check if data appears to be encrypted
     */
    public function isEncrypted(string $data): bool;

    /**
     * Get the encryption method identifier
     */
    public function getMethod(): string;

    /**
     * Validate if encryption key is suitable for this method
     */
    public function validateKey(string $key): bool;
}
