import { LocationService } from "./location-service";
/**
 * Check if the protocol is https.
 * @param  protocol Protocol to test
 * @return true if its https: in any case, false otherwise.
 */
export declare function isHttps(protocol: string): boolean;
/**
 * Check if the protocol is http.
 * @param  protocol Protocol to test
 * @return true if its http: in any case, false otherwise.
 */
export declare function isHttp(protocol: string): boolean;
/**
 * Strip any trailing slashes from a string.
 *
 * @method stripTrailingSlash
 * @param  path The path string to process.
 * @return The path string without a trailing slash.
 */
export declare function stripTrailingSlash(path: string): string;
/**
 * Add a trailing slash to a string if it doesn't have one.
 *
 * @method ensureTrailingSlash
 * @param  path The path string to process.
 * @return The path string with a guaranteed trailing slash.
 */
export declare function ensureTrailingSlash(path: string): string;
/**
 * Helper class used to calculate paths within cPanel applications.
 */
export declare class ApplicationPath {
    private unprotectedPaths;
    /**
     * Name of the application
     */
    applicationName: string;
    /**
     * Protocol used to access the page.
     */
    protocol: string;
    /**
     * Port used to access the product.
     */
    port: number;
    /**
     * Path part of the URL.
     */
    path: string;
    /**
     * Domain used to access the page.
     */
    domain: string;
    /**
     *Session token.
     */
    securityToken: string;
    /**
     * The path to the application.
     */
    applicationPath: string;
    /**
     * The name of the theme in the path.
     */
    theme: string;
    /**
     * The theme path.
     */
    themePath: string;
    /**
     * Just the protocol, domain, and port.
     */
    rootUrl: string;
    /**
     * Create the PathHelper. This class is used to help generate paths
     * within an application. It has special knowledge about how paths are
     * constructed in the cPanel family of applications.
     *
     * @param location Abstraction for the window.location object to aid in unit testing this module.
     */
    constructor(location: LocationService);
    /**
     * Return whether we are running inside some other framework or application
     *
     * @return true if this is an unrecognized application or framework; false otherwise
     */
    get isOther(): boolean;
    /**
     * Return whether we are running inside an unprotected path
     *
     * @return true if this is unprotected; false otherwise
     */
    get isUnprotected(): boolean;
    /**
     * Return whether we are running inside cPanel or something else (e.g., WHM)
     *
     * @return true if this is cPanel; false otherwise
     */
    get isCpanel(): boolean;
    /**
     * Return whether we are running inside WHM or something else (e.g., WHM)
     *
     * @return true if this is WHM; false otherwise
     */
    get isWhm(): boolean;
    /**
     * Return whether we are running inside WHM or something else (e.g., WHM)
     *
     * @return true if this is Webmail; false otherwise
     */
    get isWebmail(): boolean;
    /**
     * Get the domain relative path for the relative URL path.
     *
     * @param relative Relative path to the resource.
     * @return Domain relative URL path including theme, if applicable, for the application to the file.
     */
    buildPath(relative: string): string;
    /**
     * Get the full url path for the relative URL path.
     *
     * @param relative Relative path to the resource.
     * @return Full URL path including theme, if applicable, for the application to the file.
     */
    buildFullPath(relative: string): string;
    /**
     * Build a path relative to the security token
     *
     * @param relative Relative path to the resource.
     * @return Full path to the token relative resource.
     */
    buildTokenPath(relative: string): string;
}
