import { Application, Condition, ConditionManager, Relations, ResourceUpdateInfo } from '@foxpage/foxpage-types';
import { ManagerBaseImpl } from '../common';
import { ConditionInstance } from './condition';
/**
 * condition manager
 *
 * @export
 * @class ConditionManager impl
 * @extends {ManagerBaseImpl}
 */
export declare class ConditionManagerImpl extends ManagerBaseImpl<Condition> implements ConditionManager {
    constructor(app: Application);
    /**
     * add condition to manager
     *
     * @param {Condition} condition
     */
    addCondition(condition: Condition): ConditionInstance;
    /**
     * remove application conditions
     *
     * @param {string[]} conditionIds
     */
    removeConditions(conditionIds: string[]): void;
    /**
     * get condition via conditionId from  local
     *
     * @param {string} conditionId
     * @return {*}  {Promise<Condition|undefined>}
     */
    getCondition(conditionId: string): Promise<Condition | undefined>;
    /**
     * get conditions
     *
     * @param {string[]} conditionIds
     * @return {*}  {Promise<Condition[]>}
     */
    getConditions(conditionIds: string[]): Promise<Condition[]>;
    /**
     * fetch application conditions
     *
     * @param {string[]} conditionIds
     * @return {*}  {Promise<Condition[]>}
     */
    freshConditions(conditionIds: string[]): Promise<Condition[]>;
    protected onFetch(list: string[]): Promise<Condition[]>;
    protected onPull(data: ResourceUpdateInfo): Promise<void>;
    protected onStash(data: Relations): void;
    protected createInstance(data: Condition): Promise<ConditionInstance>;
    private newCondition;
}
