import { Router } from '@angular/router';
import { TranslateService } from '@ngx-translate/core';
import { CurrencyConfig } from './interfaces/currencyConfig';
export declare class Constants {
    translate: TranslateService;
    private router;
    private env;
    constructor(translate: TranslateService, router: Router, env: any);
    private readonly LOCALE;
    private readonly CHANNEL;
    private channelConfigSubject;
    channelConfig$: import("rxjs").Observable<any>;
    private channelConfigAPI;
    private browserWindow;
    private browserWindowEnv;
    private urlBase;
    private urlAssets;
    private urlFrontend;
    private locale;
    private channel;
    private blocksCacheTime;
    private modalConfig;
    setModalConfig: (config: any) => any;
    getModalConfig: () => {
        title: string;
        class: string;
        keyboard: boolean;
    };
    private version;
    private routes;
    private masterChannel;
    getMasterChannel: () => any;
    setMasterChannel: (channel: any) => void;
    private isProduction;
    setUrlBase: (url: any) => any;
    setUrlAssets: (url: any) => any;
    /**
     * @param next Function to execute
     * @param params That function needs
     *
     * Execute the function passed as params, if the frontend is in production mode
     */
    onlyIfProduction: (next: any, params: any) => any;
    mediaUrl: () => string;
    mediaBannerUrl: () => string;
    mediaStoreUrl: () => string;
    getProductsListRoute: () => string;
    getSectionsRoute: () => string;
    getUrlBase: () => string;
    getUrlFrontend: () => string;
    getBlocksCacheTime: () => number;
    getLocale: () => string;
    getLocaleTranslate: () => string;
    setLocale: (locale: any) => void;
    getChannel: () => string;
    setChannel: (channel: any) => void;
    getVersion: () => string;
    loginExtraData: () => {
        client_id: string;
        client_secret: string;
        grant_type: string;
    };
    isCollection: (path: any) => boolean;
    /**
     * Utilities
     */
    mobile: () => boolean;
    strictTypeChannel: () => any;
    toDecimal: (total: any) => any;
    /**
     * Elementos para manejo de lista de rutas reutilizables
     */
    addRouteToReuse: (route: RegExp) => number;
    removeRouteToReuse: (route: RegExp) => void;
    getRoutesToReuse: () => RegExp[];
    /**
     *  @public ejemplo de uso <img *ngFor="let item of consts.getRatingStar(product.rating,'assets/images/star.png','assets/images/notStar.png')" [src]="item">
     *  @description funcion que dado un valor entre 1 .. 5, y star: notStar:
     *      (deben ser el path del archivo local a la implementacion).
     *      retorna un arreglo con con la valoracion correspondiente.
     */
    getRatingStar: (rating: any, star: String, notStar: String) => any[];
    /**
     *  @public ejemplo de uso (keypress)="inputValidationByExpressions($event,'[0-9]{1,9}')" en el DOM.
     *  @description funcion que dado un manejandor de evento, y una expresion regular esta es
     *          evaluada sobre los valores que el manejador de eventos nos envia.
     *          En el caso en el que se envie el parametro 'condition' este puede ser para
     *          anular el evento como condicion adicional a la evaluacion de la entrada.
     */
    inputValidationByExpressions: (e: any, patron: any, condition?: any) => any;
    /**
     *
     * @param needles (agujas) object con claves valor a filtrar
     * @param haystack (pajar) objecto en el que buscar
     *
     * @description funcion que busca en el haystack (pajar) todos los objetos que contentan
     * todas las claves de los needles(agujas) que contengan el mismo valor
     */
    containsAll(needles: object, haystack: object): boolean;
    /**
     * Propiedad que se utiliza para tomar como configuración para el tipo de moneda que se utiliza en el sitio.
     * Estos valores son utilizados para el pipe currencyPrice
     */
    currency: CurrencyConfig;
    /**
     *
     * @param currencyTypeFind Definir el code del tipo de moneda que se quiera utilizar.
     * Si el tipo es CUSTOM se toman los valores del segundo parametro donde se puede definir la simbología y posesión que se quiera.
     * @param customType Formato del parámetro ejemplo { code: 'ARG', symbol: '$', position: 'L' , withoutDecimals: false } ,
     * todas las key son opcionales y por defecto se toman los valores del ejemplo.
     * @returns se retorna la configuración que se seteo a la propiedad currency del servicio.
     */
    setCurrency: (currencyTypeFind: "USD" | "EUR" | "ARG" | "PYG" | "PEN" | "CUSTOM", customType?: CurrencyConfig) => CurrencyConfig;
    /**
     * devuelve true si existe el elemento "search" en el array de parametros "params"
     *
     * @param params Array de parametros entre los que buscar
     * @param searched Elemento que buscar
     * @param prefix prefijo del string a buscar (ejemplo: "link_")
     * @param suffix sufijo del string a buscar (ejemplo: "link_")
     * @param casesensitive determina si se evalua con sensibilidad entre mayuscula y minuscula
     * @returns retorna true o false si se encontro o no el parametro en el array
     */
    hasParams(params: any, searched: any, prefix?: string, suffix?: string, casesensitive?: boolean): boolean;
    modifyChannelConfig: (channelConfig: any) => any;
}
