import { Injector } from '@angular/core';
import { Store } from '@ngrx/store';
import type { RulesEngineActionHandler } from '@o3r/core';
import { LocalizationService } from '@o3r/localization';
import { LoggerService } from '@o3r/logger';
import { Subject } from 'rxjs';
import { ActionUpdatePlaceholderBlock } from './placeholder.interfaces';
import { PlaceholderRequestReply, PlaceholderTemplateStore } from '@o3r/components';
import * as i0 from "@angular/core";
/**
 * Service to handle async PlaceholderTemplate actions
 */
export declare class PlaceholderRulesEngineActionHandler implements RulesEngineActionHandler<ActionUpdatePlaceholderBlock> {
    private readonly logger;
    private readonly injector;
    protected placeholdersActions$: Subject<{
        placeholderId: string;
        templateUrl: string;
        priority: number;
    }[]>;
    /** @inheritdoc */
    readonly supportingActions: readonly ["UPDATE_PLACEHOLDER"];
    constructor(store: Store<PlaceholderTemplateStore>, logger: LoggerService, injector: Injector, translateService?: LocalizationService);
    /**
     * Localize the url, replacing the language marker
     * @param url
     * @param language
     */
    protected resolveUrlWithLang(url: string, language: string | null): string;
    /**
     * Retrieve template as json from a given url
     * @param url
     */
    protected retrieveTemplate(url: string): Promise<PlaceholderRequestReply>;
    /** @inheritdoc */
    executeActions(actions: ActionUpdatePlaceholderBlock[]): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<PlaceholderRulesEngineActionHandler, [null, null, null, { optional: true; }]>;
    static ɵprov: i0.ɵɵInjectableDeclaration<PlaceholderRulesEngineActionHandler>;
}
//# sourceMappingURL=placeholder.action-handler.d.ts.map