import { URLValidator } from './url';
import type { StrapiClientConfig } from '../client';
/**
 * Provides the ability to validate the configuration used for initializing the Strapi client.
 *
 * This includes URL validation to ensure compatibility with Strapi's API endpoints.
 */
export declare class StrapiConfigValidator {
    private readonly _urlValidator;
    constructor(urlValidator?: URLValidator);
    /**
     * Validates the provided client configuration, ensuring that all values are
     * suitable for the client operations..
     *
     * @param config - The configuration object for the Strapi client. Must include a `baseURL` property indicating the API's endpoint.
     *
     * @throws {StrapiValidationError} If the configuration is invalid, or if the baseURL is invalid.
     */
    validateConfig(config: StrapiClientConfig): void;
    /**
     * Validates the base URL, ensuring it follows acceptable protocols and structure for reliable API interaction.
     *
     * @param url - The base URL string to validate.
     *
     * @throws {StrapiValidationError} If the URL is invalid or if it fails through the URLValidator checks.
     */
    private validateBaseURL;
    /**
     * Validates the headers object to ensure it's a plain object with string key-value pairs.
     *
     * @param headers - The headers object to validate.
     *
     * @throws {StrapiValidationError} If the headers are invalid.
     */
    private validateHeaders;
}
