import { IClass, IInjector, IType, ITypeFilter } from "@robotlegsjs/core";
import { IMediatorManager } from "../api/IMediatorManager";
import { IMediatorMapping } from "../api/IMediatorMapping";
/**
 * @protected
 */
export declare abstract class AbstractMediatorFactory {
    protected _mediators: Map<any, any>;
    protected _injector: IInjector;
    protected _manager: IMediatorManager;
    /**
     * @private
     */
    constructor(injector: IInjector);
    /**
     * @private
     */
    getMediator(item: any, mapping: IMediatorMapping): any;
    /**
     * @private
     */
    createMediators(item: any, type: IClass<any>, mappings: any[]): any[];
    /**
     * @private
     */
    removeMediators(item: any): void;
    /**
     * @private
     */
    removeAllMediators(): void;
    protected createMediator(item: any, mapping: IMediatorMapping): any;
    protected addMediator(mediator: any, item: any, mapping: IMediatorMapping): void;
    protected mapTypeForFilterBinding(filter: ITypeFilter, type: IClass<any>, item: any): void;
    protected unmapTypeForFilterBinding(filter: ITypeFilter, type: IClass<any>, item: any): void;
    protected requiredTypesFor(filter: ITypeFilter, type: IClass<any>): IType<any>[];
}
