import { Router } from '@angular/router';
import { AbstractDialogService, AbstractHttpService, AbstractNavigationService, AbstractToasterService } from '@wm/core';
import { OAuthService } from '@wm/oAuth';
import { SecurityService } from '@wm/security';
import { MetadataService } from './metadata-service/metadata.service';
import { DateFormatter } from '@wavemaker/variables';
import * as i0 from "@angular/core";
export declare class Formatter implements DateFormatter {
    format(value: any, format: any): any;
}
export declare class VariablesService {
    private httpService;
    private metadataService;
    private navigationService;
    private routerService;
    private toasterService;
    private oAuthService;
    private securityService;
    private dialogService;
    constructor(httpService: AbstractHttpService, metadataService: MetadataService, navigationService: AbstractNavigationService, routerService: Router, toasterService: AbstractToasterService, oAuthService: OAuthService, securityService: SecurityService, dialogService: AbstractDialogService);
    /**
     * loop through a collection of variables/actions
     * trigger cancel on each (of exists)
     * @param collection
     */
    bulkCancel(collection: any): void;
    /**
     * loops over the variable/actions collection and trigger invoke on it if startUpdate on it is true
     * @param collection
     */
    triggerStartUpdate(collection: any): Promise<any[]>;
    processBindExp(d: any, scope: any, variable: any): {
        name: any;
        value: any;
    };
    processBinding(variable: any, context: any, bindSource?: string, bindTarget?: string): void;
    isVariableSeperated(variablesJson: any, variableName: any): boolean;
    getBindSourceTarget(variable: any): "dataBinding" | "filterFields" | "inputFields" | "dataSet";
    /**
     * Takes the raw variables and actions json as input
     * Initialize the variable and action instances through the factory
     * collect the variables and actions in separate maps and return the collection
     * @param {string} page
     * @param variablesJson
     * @param scope
     * @returns {Variables , Actions}
     */
    register(page: string, variablesJson: any, scope: any): {
        Variables: {};
        Actions: {};
        callback: (collection: any) => Promise<any[]>;
    };
    destroy(): void;
    registerDependency(name: any, ref: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<VariablesService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<VariablesService>;
}
