import { EventBus, IEvent } from "@nova-ui/bits";
import { IConfigurable, IProperties } from "../../../types";
import * as i0 from "@angular/core";
export interface IInteractionPayload<T> {
    interactionType?: string;
    data: T;
}
export interface IInteractionHandlerProperties extends IProperties {
    interactionType?: string;
}
export declare abstract class InteractionHandler<T extends IInteractionHandlerProperties, P> implements IConfigurable {
    protected readonly eventBus: EventBus<IEvent>;
    protected properties: T;
    constructor(eventBus: EventBus<IEvent>);
    updateConfiguration(properties: T): void;
    protected initializeSubscriptions(): void;
    protected abstract handleInteraction(interaction: IInteractionPayload<P>): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<InteractionHandler<any, any>, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<InteractionHandler<any, any>>;
}
