<?php

namespace App\Services\Verification\Contracts;

use App\Services\Verification\DTOs\PanVerificationResult;
use App\Services\Verification\DTOs\AadhaarOtpResult;
use App\Services\Verification\DTOs\AadhaarVerificationResult;
use App\Services\Verification\DTOs\AadhaarBasicResult;
use App\Services\Verification\DTOs\AadhaarPanLinkResult;
use App\Services\Verification\DTOs\GstVerificationResult;
use App\Services\Verification\DTOs\BankVerificationResult;

interface VerificationProviderInterface
{
    public function verifyPan(string $panNumber, ?string $fullName = null, ?string $dob = null): PanVerificationResult;
    
    public function sendAadhaarOtp(string $aadhaarNumber): AadhaarOtpResult;
    
    public function verifyAadhaarOtp(string $otp, string $clientId): AadhaarVerificationResult;
    
    public function verifyAadhaarBasic(string $aadhaarNumber): AadhaarBasicResult;
    
    public function checkAadhaarPanLink(string $aadhaarNumber, string $panNumber): AadhaarPanLinkResult;
    
    public function verifyGst(string $gstin): GstVerificationResult;

    public function verifyBank(string $accountNumber, string $ifsc): BankVerificationResult;
}
