import { RulesEngineAction, RulesEngineActionHandler } from '@o3r/core';
import * as i0 from '@angular/core';
import * as i1 from '@o3r/configuration';

/** ActionUpdateConfigurationBlock  */
declare const RULES_ENGINE_CONFIGURATION_UPDATE_ACTION_TYPE = "UPDATE_CONFIG";
/**
 * Content of action that updates a Configuration
 */
interface ActionUpdateConfigBlock extends RulesEngineAction {
    actionType: typeof RULES_ENGINE_CONFIGURATION_UPDATE_ACTION_TYPE;
    library: string;
    component: string;
    property: string;
}

/**
 * Service to handle async Configuration actions
 */
declare class ConfigurationRulesEngineActionHandler implements RulesEngineActionHandler<ActionUpdateConfigBlock> {
    private readonly store;
    /** @inheritdoc */
    readonly supportingActions: readonly ["UPDATE_CONFIG"];
    /** @inheritdoc */
    executeActions(actions: ActionUpdateConfigBlock[]): void | Promise<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ConfigurationRulesEngineActionHandler, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ConfigurationRulesEngineActionHandler>;
}

declare class ConfigurationRulesEngineActionModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ConfigurationRulesEngineActionModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ConfigurationRulesEngineActionModule, never, [typeof i1.ConfigurationStoreModule], never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ConfigurationRulesEngineActionModule>;
}

export { ConfigurationRulesEngineActionHandler, ConfigurationRulesEngineActionModule, RULES_ENGINE_CONFIGURATION_UPDATE_ACTION_TYPE };
export type { ActionUpdateConfigBlock };
//# sourceMappingURL=o3r-configuration-rules-engine.d.ts.map
