import { AfterActionCallback, BeforeActionCallback, ConditionHook, Hook } from '../index';
import { MonoAction, MonoActionName } from './action-manager';
import { MonoController } from './mono-controller';
export interface MonoTriggerMap {
    trigger: HTMLElement;
    action: MonoActionName;
    payload?: string;
}
export interface MonoConfig {
    cooldown: number;
    listenToKeydown: boolean;
    deactivateOnOutsideAction: boolean;
    items: NodeListOf<HTMLElement> | HTMLElement[];
    isTrigger: (element: HTMLElement) => boolean;
    mapTriggerToAction: (trigger: HTMLElement) => MonoTriggerMap | false;
    getItemId: (item: HTMLElement) => string | false;
    conditionActivate: ConditionHook<MonoAction, MonoController>;
    conditionDeactivate: ConditionHook<MonoAction, MonoController>;
    beforeActivate: Hook<MonoAction, MonoController>;
    beforeDeactivate: Hook<MonoAction, MonoController>;
    itemIsActive: (item: HTMLElement, context: MonoController) => boolean;
    activateItem: (item: HTMLElement, context: MonoController) => void;
    deactivateItem: (item: HTMLElement, context: MonoController) => void;
    afterActivate: Hook<MonoAction, MonoController>;
    afterDeactivate: Hook<MonoAction, MonoController>;
    beforeAction: BeforeActionCallback<MonoAction, MonoController>;
    afterAction: AfterActionCallback<MonoAction, MonoController>;
    onKeydown: (event: KeyboardEvent, context: MonoController) => void;
    onOutsideAction: (context: MonoController) => void;
}
export declare const DEFAULT_CONFIG: MonoConfig;
