import { EventEmitter } from '@angular/core';
import { Observable } from 'rxjs/Rx';
import { RuleModel } from './services/Rule';
import { I18nService } from './services/system/locale/I18n';
import { ServerSideTypeModel } from './services/ServerSideFieldModel';
import { ConditionActionEvent, RuleActionActionEvent, RuleActionEvent, ConditionGroupActionEvent } from './rule-engine.container';
import { IPublishEnvironment } from './services/bundle-service';
/**
 *
 */
export declare class RuleEngineComponent {
    rules: RuleModel[];
    ruleActionTypes: {
        [key: string]: ServerSideTypeModel;
    };
    loading: boolean;
    globalError: string;
    showRules: boolean;
    conditionTypes: {
        [key: string]: ServerSideTypeModel;
    };
    environmentStores: IPublishEnvironment[];
    createRule: EventEmitter<{
        type: string;
    }>;
    deleteRule: EventEmitter<RuleActionEvent>;
    updateName: EventEmitter<RuleActionEvent>;
    updateExpandedState: EventEmitter<RuleActionEvent>;
    updateEnabledState: EventEmitter<RuleActionEvent>;
    updateFireOn: EventEmitter<RuleActionEvent>;
    createRuleAction: EventEmitter<RuleActionActionEvent>;
    deleteRuleAction: EventEmitter<RuleActionActionEvent>;
    updateRuleActionType: EventEmitter<RuleActionActionEvent>;
    updateRuleActionParameter: EventEmitter<RuleActionActionEvent>;
    createConditionGroup: EventEmitter<ConditionGroupActionEvent>;
    updateConditionGroupOperator: EventEmitter<ConditionGroupActionEvent>;
    createCondition: EventEmitter<ConditionActionEvent>;
    deleteCondition: EventEmitter<ConditionActionEvent>;
    updateConditionType: EventEmitter<ConditionActionEvent>;
    updateConditionParameter: EventEmitter<ConditionActionEvent>;
    updateConditionOperator: EventEmitter<ConditionActionEvent>;
    filterText: string;
    status: string;
    activeRules: number;
    private resources;
    private _rsrcCache;
    constructor(resources: I18nService);
    rsrc(subkey: string): Observable<any>;
    ngOnChange(change: any): void;
    addRule(): void;
    updateActiveRuleCount(): void;
    setFieldFilter(field: string, value?: string): void;
    isFilteringField(field: string, value?: any): boolean;
    isFiltered(rule: RuleModel): boolean;
}
