<?php

namespace SplitPay\Contracts;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

interface IntegrationInterface {

	public function getId(): string;

	public function getName(): string;

	public function getDescription(): string;

	public function getVersion(): string;

	public function getPluginUrl(): string;

	public function isInstalled(): bool;

	public function isActive(): bool;

	public function getStatusDetails(): array;

	public function getOrderAdapter( $orderData ): OrderAdapterInterface;

	public function getProductAdapter(): ProductAdapterInterface;

	/** @return GatewayAdapterInterface[] */
	public function getGatewayAdapters(): array;

	public function registerHooks(): void;

	public function registerAdminUI(): void;
}
