import { AfterActionCallback, BeforeActionCallback, ConditionHook, Hook } from '../index';
import { SequenceController } from './sequence-controller';
import { SequenceAction, SequenceActionName } from './action-manager';
export interface SequenceTriggerMap {
    trigger: HTMLElement;
    action: SequenceActionName;
    payload?: string;
}
export interface SequenceConfig {
    cooldown: number;
    listenToKeydown: boolean;
    items: NodeListOf<HTMLElement> | HTMLElement[];
    isTrigger: (element: HTMLElement) => boolean;
    mapTriggerToAction: (trigger: HTMLElement) => SequenceTriggerMap | false;
    getItemId: (item: HTMLElement) => string | false;
    conditionPrevious: ConditionHook<SequenceAction, SequenceController>;
    conditionNext: ConditionHook<SequenceAction, SequenceController>;
    conditionJump: ConditionHook<SequenceAction, SequenceController>;
    beforeActivate: Hook<SequenceAction, SequenceController>;
    beforeDeactivate: Hook<SequenceAction, SequenceController>;
    itemIsActive: (item: HTMLElement, controller: SequenceController) => boolean;
    activateItem: (item: HTMLElement, controller: SequenceController) => void;
    deactivateItem: (item: HTMLElement, controller: SequenceController) => void;
    afterActivate: Hook<SequenceAction, SequenceController>;
    afterDeactivate: Hook<SequenceAction, SequenceController>;
    beforeAction: BeforeActionCallback<SequenceAction, SequenceController>;
    afterAction: AfterActionCallback<SequenceAction, SequenceController>;
    onKeydown: (event: KeyboardEvent, context: SequenceController) => void;
}
export declare const DEFAULT_CONFIG: SequenceConfig;
