import type { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, INPUT_METHOD } from './enums';
import type { NonRequiredAttributes, TrackAEP } from './utils';
export declare enum DELETE_DIRECTION {
    BACKWARD = "backward",
    FORWARD = "forward"
}
export declare enum LIST_TEXT_SCENARIOS {
    JOIN_SIBLINGS = "joinSiblings",
    JOIN_DESCENDANT_TO_PARENT = "joinDescendantToParent",
    JOIN_TO_SIBLING_DESCENDANT = "joinToSiblingDescendant",
    JOIN_PARAGRAPH_WITH_LIST = "joinParagraphWithList",
    JOIN_PARENT_SIBLING_TO_PARENT_CHILD = "joinParentSiblingToParentChild",
    JOIN_LIST_ITEM_WITH_PARAGRAPH = "joinListItemWithParagraph"
}
export declare enum JOIN_SCENARIOS_WHEN_TYPING_TO_INSERT_LIST {
    NO_JOIN = "noJoin",
    JOINED_TO_LIST_ABOVE = "joinedToListAbove",
    JOINED_TO_LIST_BELOW = "joinedToListBelow"
}
export declare enum OUTDENT_SCENARIOS {
    SPLIT_LIST = "splitList"
}
export type CommonListAnalyticsAttributes = {
    indentLevelAtSelectionEnd: number;
    indentLevelAtSelectionStart: number;
    itemIndexAtSelectionEnd: number;
    itemIndexAtSelectionStart: number;
    itemsInSelection: number;
};
export type RestartListsAttributesForListOutdented = {
    outdentScenario?: OUTDENT_SCENARIOS;
    splitListStartNumber?: number;
};
type ListItemJoinedFormatAEP<Attributes> = TrackAEP<ACTION.LIST_ITEM_JOINED, ACTION_SUBJECT.LIST, ACTION_SUBJECT_ID.FORMAT_LIST_BULLET | ACTION_SUBJECT_ID.FORMAT_LIST_NUMBER, Attributes, undefined>;
type ListItemJoinedForwardAEP = ListItemJoinedFormatAEP<{
    direction: DELETE_DIRECTION.FORWARD;
    inputMethod: INPUT_METHOD.KEYBOARD;
    scenario: LIST_TEXT_SCENARIOS.JOIN_PARAGRAPH_WITH_LIST | LIST_TEXT_SCENARIOS.JOIN_SIBLINGS | LIST_TEXT_SCENARIOS.JOIN_DESCENDANT_TO_PARENT | LIST_TEXT_SCENARIOS.JOIN_PARENT_SIBLING_TO_PARENT_CHILD | LIST_TEXT_SCENARIOS.JOIN_LIST_ITEM_WITH_PARAGRAPH;
}>;
type ListItemJoinedBackwardsAEP = ListItemJoinedFormatAEP<{
    direction: DELETE_DIRECTION.BACKWARD;
    inputMethod: INPUT_METHOD.KEYBOARD;
    scenario: LIST_TEXT_SCENARIOS.JOIN_SIBLINGS | LIST_TEXT_SCENARIOS.JOIN_DESCENDANT_TO_PARENT | LIST_TEXT_SCENARIOS.JOIN_TO_SIBLING_DESCENDANT;
}>;
type ListConvertedTrackAEP = TrackAEP<ACTION.CONVERTED, ACTION_SUBJECT.LIST, ACTION_SUBJECT_ID.FORMAT_LIST_BULLET | ACTION_SUBJECT_ID.FORMAT_LIST_NUMBER | ACTION_SUBJECT_ID.TEXT, {
    inputMethod: INPUT_METHOD.TOOLBAR | INPUT_METHOD.KEYBOARD | INPUT_METHOD.FLOATING_TB;
    transformedFrom: ACTION_SUBJECT_ID.FORMAT_LIST_BULLET | ACTION_SUBJECT_ID.FORMAT_LIST_NUMBER;
} & CommonListAnalyticsAttributes, undefined>;
type ListIndentedAEP = TrackAEP<ACTION.INDENTED, ACTION_SUBJECT.LIST, ACTION_SUBJECT_ID.FORMAT_LIST_BULLET | ACTION_SUBJECT_ID.FORMAT_LIST_NUMBER, {
    inputMethod: INPUT_METHOD;
} & CommonListAnalyticsAttributes, undefined>;
type ListOutdentedAEP = TrackAEP<ACTION.OUTDENTED, ACTION_SUBJECT.LIST, ACTION_SUBJECT_ID.FORMAT_LIST_BULLET | ACTION_SUBJECT_ID.FORMAT_LIST_NUMBER, {
    inputMethod: INPUT_METHOD;
} & CommonListAnalyticsAttributes & RestartListsAttributesForListOutdented, undefined>;
type ListInsertedAEP = TrackAEP<ACTION.INSERTED, ACTION_SUBJECT.LIST, ACTION_SUBJECT_ID.FORMAT_LIST_BULLET | ACTION_SUBJECT_ID.FORMAT_LIST_NUMBER, {
    inputMethod: INPUT_METHOD.FORMATTING | INPUT_METHOD.KEYBOARD | INPUT_METHOD.TOOLBAR | INPUT_METHOD.QUICK_INSERT | INPUT_METHOD.FLOATING_TB;
    joinScenario?: JOIN_SCENARIOS_WHEN_TYPING_TO_INSERT_LIST;
    listStartNumber?: number;
}, undefined, NonRequiredAttributes>;
type ListContentSanitizedAEP = TrackAEP<ACTION.NODE_CONTENT_SANITIZED, ACTION_SUBJECT.LIST, ACTION_SUBJECT_ID.FORMAT_LIST_BULLET | ACTION_SUBJECT_ID.FORMAT_LIST_NUMBER, {
    inputMethod: INPUT_METHOD.FORMATTING;
    marksRemoved: string[];
    nodeSanitized: string;
}, undefined>;
export type ListEventPayload = ListItemJoinedForwardAEP | ListItemJoinedBackwardsAEP | ListConvertedTrackAEP | ListIndentedAEP | ListOutdentedAEP | ListInsertedAEP | ListContentSanitizedAEP;
export {};
