<?php

declare (strict_types=1);
/*
 * PaypalServerSdkLib
 *
 * This file was automatically generated by APIMATIC v3.0 ( https://www.apimatic.io ).
 */
namespace FormGent\PaypalServerSdkLib;

use FormGent\CoreInterfaces\Http\HttpConfigurations;
use FormGent\PaypalServerSdkLib\Authentication\ClientCredentialsAuthCredentialsBuilder;
use FormGent\PaypalServerSdkLib\Logging\LoggingConfigurationBuilder;
/**
 * An interface for all configuration parameters required by the SDK.
 */
interface ConfigurationInterface extends HttpConfigurations
{
    /**
     * Get current API environment
     */
    public function getEnvironment() : string;
    /**
     * Get the credentials to use with ClientCredentialsAuth
     */
    public function getClientCredentialsAuth() : ClientCredentialsAuth;
    /**
     * Get the credentials builder instance to update credentials for ClientCredentialsAuth
     */
    public function getClientCredentialsAuthCredentialsBuilder() : ?ClientCredentialsAuthCredentialsBuilder;
    /**
     * Represents the logging configurations for API calls.
     */
    public function getLoggingConfigurationBuilder() : ?LoggingConfigurationBuilder;
    /**
     * Get the base uri for a given server in the current environment.
     *
     * @param string $server Server name
     *
     * @return string Base URI
     */
    public function getBaseUri(string $server = Server::DEFAULT_) : string;
}
