import { BaseSiteService } from '../../site-context/facade/base-site.service';
import { OccConfig } from '../config/occ-config';
export interface BaseOccUrlProperties {
    baseUrl?: boolean;
    prefix?: boolean;
    baseSite?: boolean;
}
export interface DynamicAttributes {
    urlParams?: object;
    queryParams?: object;
    scope?: string;
}
export declare class OccEndpointsService {
    private config;
    private baseSiteService;
    private _activeBaseSite;
    private get activeBaseSite();
    constructor(config: OccConfig, baseSiteService: BaseSiteService);
    /**
     * @Deprecated since 3.2 - use "getRawEndpointValue" or "buildUrl" instead
     *
     * Returns an endpoint starting from the OCC baseUrl (no baseSite)
     * @param endpoint Endpoint suffix
     */
    getRawEndpoint(endpoint: string): string;
    /**
     * Returns the value configured for a specific endpoint
     *
     * @param endpointKey the configuration key for the endpoint to return
     * @param scope endpoint configuration scope
     */
    getRawEndpointValue(endpoint: string, scope?: string): string;
    /**
     * Returns true when the endpoint is configured
     *
     * @param endpointKey the configuration key for the endpoint to return
     * @param scope endpoint configuration scope
     */
    isConfigured(endpoint: string, scope?: string): boolean;
    /**
     * @Deprecated since 3.2 - use "buildUrl" instead
     *
     * Returns an endpoint starting from the OCC prefix (no baseSite), i.e. /occ/v2/{endpoint}
     * Most OCC endpoints are related to a baseSite context and are therefor prefixed
     * with the baseSite. The `/basesites` endpoint does not relate to a specific baseSite
     * as it will load all baseSites.
     *
     * @param endpoint Endpoint suffix
     */
    getOccEndpoint(endpoint: string): string;
    /**
     * @Deprecated since 3.2 - use "getBaseUrl" with the same parameters
     *
     * Returns base OCC endpoint (baseUrl + prefix + baseSite) by if no parameters are specified
     *
     * @param propertiesToOmit Specify properties to not add to the url (baseUrl, prefix, baseSite)
     */
    getBaseEndpoint(propertiesToOmit?: BaseOccUrlProperties): string;
    /**
     * @Deprecated since 3.2 - use "buildUrl" with configurable endpoints instead
     *
     * Returns an OCC endpoint including baseUrl and baseSite
     *
     * @param endpoint Endpoint suffix
     * @param propertiesToOmit Specify properties to not add to the url (baseUrl, prefix, baseSite)
     */
    getEndpoint(endpoint: string, propertiesToOmit?: BaseOccUrlProperties): string;
    /**
     * Returns base OCC endpoint (baseUrl + prefix + baseSite) base on provided values
     *
     * @param baseUrlProperties Specify properties to not add to the url (baseUrl, prefix, baseSite)
     */
    getBaseUrl(baseUrlProperties?: BaseOccUrlProperties): string;
    /**
     * Returns a fully qualified OCC Url
     *
     * @param endpoint Name of the OCC endpoint key
     * @param attributes Dynamic attributes used to build the url
     * @param propertiesToOmit Specify properties to not add to the url (baseUrl, prefix, baseSite)
     */
    buildUrl(endpoint: string, attributes?: DynamicAttributes, propertiesToOmit?: BaseOccUrlProperties): string;
    /**
     * @Deprecated since 3.2 - use "buildUrl" instead
     *
     * Returns a fully qualified OCC Url (including baseUrl and baseSite)
     * @param endpoint Name of the OCC endpoint key config
     * @param urlParams  URL parameters
     * @param queryParams Query parameters
     * @param scope
     */
    getUrl(endpoint: string, urlParams?: object, queryParams?: object, scope?: string): string;
    private getEndpointFromConfig;
    private getEndpointForScope;
    /**
     * Add the base OCC url properties to the specified endpoint string
     *
     * @param endpointString String value for the url endpoint
     * @param propertiesToOmit Specify properties to not add to the url (baseUrl, prefix, baseSite)
     */
    private buildUrlFromEndpointString;
    private getPrefix;
}
