import type { ExtensionLayout, PanelType } from '@atlaskit/adf-schema';
import type { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, INPUT_METHOD, INSERT_MEDIA_VIA } from './enums';
import type { InsertNativeEmbedAEP } from './native-embed-events';
import type { InsertSmartLinkAEP } from './smart-links';
import type { InsertAEP, TrackAEP, OperationalAEP } from './utils';
export declare enum USER_CONTEXT {
    EDIT = "edit",
    NEW = "new"
}
export declare enum LINK_STATUS {
    RESOLVED = "resolved",
    UNRESOLVED = "unresolved"
}
export declare enum LINK_REPRESENTATION {
    TEXT = "text",
    INLINE_CARD = "inlineCard",
    BLOCK_CARD = "blockCard",
    EMBED = "embed"
}
export declare enum LINK_RESOURCE {
    JIRA = "jiraIssue",
    CONFLUENCE = "confluencePage",
    BITBUCKET_PR = "bitbucketPR",
    BITBUCKET_REPO = "bitbucketRepo",
    TRELLO_CARD = "trelloCard",
    TRELLO_BOARD = "trelloBoard",
    STATUS_PAGE = "statusPage",
    BOX = "boxFile",
    DROPBOX = "dropboxFile",
    OFFICE = "office",
    DRIVE = "drive",
    YOUTUBE = "youtubeVideo",
    TWITTER = "twitterTweet",
    OTHER = "other"
}
type InsertLineBreakAEP = TrackAEP<ACTION.INSERTED, ACTION_SUBJECT.TEXT, ACTION_SUBJECT_ID.LINE_BREAK, undefined, undefined>;
type InsertDividerAEP = InsertAEP<ACTION_SUBJECT_ID.DIVIDER, {
    inputMethod: INPUT_METHOD.QUICK_INSERT | INPUT_METHOD.TOOLBAR | INPUT_METHOD.INSERT_MENU | INPUT_METHOD.FORMATTING | INPUT_METHOD.SHORTCUT | INPUT_METHOD.ELEMENT_BROWSER;
}, undefined>;
type InsertPanelAEP = InsertAEP<ACTION_SUBJECT_ID.PANEL, {
    inputMethod: INPUT_METHOD.QUICK_INSERT | INPUT_METHOD.TOOLBAR | INPUT_METHOD.INSERT_MENU | INPUT_METHOD.ELEMENT_BROWSER;
    panelType: PanelType;
}, undefined>;
type InsertCodeBlockAEP = InsertAEP<ACTION_SUBJECT_ID.CODE_BLOCK, {
    inputMethod: INPUT_METHOD.QUICK_INSERT | INPUT_METHOD.TOOLBAR | INPUT_METHOD.INSERT_MENU | INPUT_METHOD.FORMATTING | INPUT_METHOD.ELEMENT_BROWSER;
}, undefined>;
type InsertTableAEP = InsertAEP<ACTION_SUBJECT_ID.TABLE, {
    inputMethod: INPUT_METHOD.QUICK_INSERT | INPUT_METHOD.ELEMENT_BROWSER | INPUT_METHOD.TOOLBAR | INPUT_METHOD.INSERT_MENU | INPUT_METHOD.FORMATTING | INPUT_METHOD.PICKER | INPUT_METHOD.SHORTCUT;
    localId?: string;
    totalColumnCount?: number;
    totalRowCount?: number;
}, undefined>;
type InsertExpandAEP = InsertAEP<ACTION_SUBJECT_ID.EXPAND | ACTION_SUBJECT_ID.NESTED_EXPAND, {
    inputMethod: INPUT_METHOD.QUICK_INSERT | INPUT_METHOD.INSERT_MENU | INPUT_METHOD.ELEMENT_BROWSER | INPUT_METHOD.TOOLBAR;
}, undefined>;
type InsertActionDecisionAEP = InsertAEP<ACTION_SUBJECT_ID.DECISION | ACTION_SUBJECT_ID.ACTION, {
    containerAri?: string;
    inputMethod: INPUT_METHOD.QUICK_INSERT | INPUT_METHOD.ELEMENT_BROWSER | INPUT_METHOD.TOOLBAR | INPUT_METHOD.INSERT_MENU | INPUT_METHOD.FORMATTING | INPUT_METHOD.KEYBOARD | INPUT_METHOD.FLOATING_TB;
    listLocalId: string;
    listSize: number;
    localId: string;
    objectAri?: string;
    position: number;
    userContext?: USER_CONTEXT.EDIT | USER_CONTEXT.NEW;
}, undefined>;
type InsertEmojiAEP = InsertAEP<ACTION_SUBJECT_ID.EMOJI, {
    inputMethod: INPUT_METHOD.TYPEAHEAD | INPUT_METHOD.PICKER | INPUT_METHOD.ASCII;
}, undefined>;
type InsertStatusAEP = InsertAEP<ACTION_SUBJECT_ID.STATUS, {
    inputMethod: INPUT_METHOD.QUICK_INSERT | INPUT_METHOD.TOOLBAR | INPUT_METHOD.INSERT_MENU | INPUT_METHOD.ELEMENT_BROWSER;
}, undefined>;
export type InputMethodInsertMedia = INPUT_METHOD.CLIPBOARD | INPUT_METHOD.PICKER_CLOUD | INPUT_METHOD.DRAG_AND_DROP | INPUT_METHOD.BROWSER | INPUT_METHOD.MEDIA_PICKER | INPUT_METHOD.REMIX;
export type InsertMediaVia = INSERT_MEDIA_VIA.EXTERNAL_UPLOAD | INSERT_MEDIA_VIA.EXTERNAL_URL | INSERT_MEDIA_VIA.LOCAL_UPLOAD;
type InsertMediaSingleAEP = InsertAEP<ACTION_SUBJECT_ID.MEDIA, {
    fileExtension?: string;
    inputMethod: InputMethodInsertMedia;
    insertMediaVia?: InsertMediaVia;
    type: ACTION_SUBJECT_ID.MEDIA_SINGLE | ACTION_SUBJECT_ID.MEDIA_GROUP;
}, undefined>;
type InsertMediaGroupAEP = InsertAEP<ACTION_SUBJECT_ID.MEDIA, {
    fileExtension?: string;
    inputMethod?: InputMethodInsertMedia;
    insertMediaVia?: InsertMediaVia;
    type: ACTION_SUBJECT_ID.MEDIA_SINGLE | ACTION_SUBJECT_ID.MEDIA_GROUP;
}, undefined>;
type InsertMediaInlineAEP = InsertAEP<ACTION_SUBJECT_ID.MEDIA, {
    fileExtension?: string;
    inputMethod?: InputMethodInsertMedia;
    insertMediaVia?: InsertMediaVia;
    type: ACTION_SUBJECT_ID.MEDIA_INLINE;
}, undefined>;
export type InputMethodInsertLink = INPUT_METHOD.TYPEAHEAD | INPUT_METHOD.CLIPBOARD | INPUT_METHOD.FORMATTING | INPUT_METHOD.AUTO_DETECT | INPUT_METHOD.MANUAL;
type InsertLinkAEP = InsertAEP<ACTION_SUBJECT_ID.LINK, {
    fromCurrentDomain: boolean;
    inputMethod: InputMethodInsertLink;
}, {
    linkDomain: string;
}>;
type InsertLinkPreviewAEP = InsertAEP<ACTION_SUBJECT_ID.LINK_PREVIEW, {
    representation?: LINK_REPRESENTATION.TEXT | LINK_REPRESENTATION.INLINE_CARD | LINK_REPRESENTATION.INLINE_CARD | LINK_REPRESENTATION.BLOCK_CARD;
    resourceType?: LINK_RESOURCE.JIRA | LINK_RESOURCE.CONFLUENCE | LINK_RESOURCE.BITBUCKET_PR | LINK_RESOURCE.BITBUCKET_REPO | LINK_RESOURCE.TRELLO_CARD | LINK_RESOURCE.TRELLO_BOARD | LINK_RESOURCE.STATUS_PAGE | LINK_RESOURCE.BOX | LINK_RESOURCE.DROPBOX | LINK_RESOURCE.OFFICE | LINK_RESOURCE.DRIVE | LINK_RESOURCE.YOUTUBE | LINK_RESOURCE.TWITTER | LINK_RESOURCE.OTHER;
    status: LINK_STATUS.RESOLVED | LINK_STATUS.UNRESOLVED;
}, undefined>;
type InsertMediaLinkAEP = InsertAEP<ACTION_SUBJECT_ID.MEDIA_LINK, {
    inputMethod: INPUT_METHOD.TYPEAHEAD | INPUT_METHOD.MANUAL;
    insertType?: INSERT_MEDIA_VIA;
}, undefined>;
type InsertLayoutAEP = InsertAEP<ACTION_SUBJECT_ID.LAYOUT, {
    columnCount?: number;
    hasSelectedMultipleNodes?: boolean;
    inputMethod: INPUT_METHOD.TOOLBAR | INPUT_METHOD.INSERT_MENU | INPUT_METHOD.QUICK_INSERT | INPUT_METHOD.DRAG_AND_DROP;
    nodeTypes?: string;
}, undefined>;
export type InsertDateAEP = InsertAEP<ACTION_SUBJECT_ID.DATE, {
    inputMethod: INPUT_METHOD.QUICK_INSERT | INPUT_METHOD.ELEMENT_BROWSER | INPUT_METHOD.TOOLBAR | INPUT_METHOD.INSERT_MENU | INPUT_METHOD.INLINE_SUGGESTION_FLOATING_TB;
}, undefined>;
type InsertExtensionAEP = InsertAEP<ACTION_SUBJECT_ID.EXTENSION, {
    extensionKey: string;
    extensionType: string;
    inputMethod: INPUT_METHOD.QUICK_INSERT | INPUT_METHOD.TOOLBAR | INPUT_METHOD.ELEMENT_BROWSER;
    key: string;
}, any>;
type InsertNodeViaExtensionAPIAEP = InsertAEP<undefined, {
    /**
     * extensionkey follows this format:
     * ${manifest.key}:${manifest.modules.nodes.name}
     * e.g: 'awesome:item', 'awesome:default', 'awesome:list'
     */
    extensionKey?: string;
    extensionType?: string;
    hasReferentiality: boolean;
    inputMethod: INPUT_METHOD.EXTENSION_API;
    layout?: ExtensionLayout;
    nodeType: string;
    nodeTypesReferenced?: string[];
}, undefined>;
type InsertPlaceholderTextAEP = InsertAEP<ACTION_SUBJECT_ID.PLACEHOLDER_TEXT, {
    inputMethod: INPUT_METHOD.QUICK_INSERT | INPUT_METHOD.TOOLBAR | INPUT_METHOD.INSERT_MENU | INPUT_METHOD.ELEMENT_BROWSER;
}, undefined>;
type FailedToInsertMediaPayload = OperationalAEP<ACTION.FAILED_TO_INSERT, ACTION_SUBJECT.DOCUMENT, ACTION_SUBJECT_ID.MEDIA_INLINE | ACTION_SUBJECT_ID.MEDIA_SINGLE | ACTION_SUBJECT_ID.MEDIA_GROUP, {
    fileExtension?: string;
    inputMethod?: InputMethodInsertMedia;
    insertMediaVia?: InsertMediaVia;
    reason?: string;
}>;
type InsertReferenceSyncedBlockPayload = InsertAEP<ACTION_SUBJECT_ID.SYNCED_BLOCK, {
    blockInstanceId: string;
    resourceId: string;
}, undefined>;
export type InsertSourceSyncedBlockPayload = InsertAEP<ACTION_SUBJECT_ID.BODIED_SYNCED_BLOCK, {
    resourceId: string;
}, undefined>;
type InsertSnippetAEP = InsertAEP<ACTION_SUBJECT_ID.SNIPPET, {
    hadMedia?: boolean;
    inputMethod: INPUT_METHOD.QUICK_INSERT;
    snippetId: string;
}, undefined>;
type FailedToInsertSnippetAEP = OperationalAEP<ACTION.FAILED_TO_INSERT, ACTION_SUBJECT.DOCUMENT, ACTION_SUBJECT_ID.SNIPPET, {
    reason: 'emptyBody' | 'parseError';
    snippetId: string;
} | {
    numFailedMediaFiles: number;
    numTotalMediaFiles: number;
    reason: 'snippetMediaDirectCopyFailed';
    snippetId: string;
    snippetMediaCopyStatus: 'copied' | 'partial-copy' | 'failed' | 'copy-unavailable';
} | {
    numFailedMediaFiles: number;
    numTotalMediaFiles: number;
    reason: 'snippetMediaDirectCopyUnexpectedError';
    snippetId: string;
}>;
export type InsertEventPayload = InsertDividerAEP | InsertLineBreakAEP | InsertPanelAEP | InsertCodeBlockAEP | InsertTableAEP | InsertExpandAEP | InsertActionDecisionAEP | InsertEmojiAEP | InsertStatusAEP | InsertMediaSingleAEP | InsertMediaGroupAEP | InsertMediaInlineAEP | InsertLinkAEP | InsertLinkPreviewAEP | InsertMediaLinkAEP | InsertSmartLinkAEP | InsertLayoutAEP | InsertExtensionAEP | InsertNodeViaExtensionAPIAEP | InsertDateAEP | InsertPlaceholderTextAEP | InsertNativeEmbedAEP | FailedToInsertMediaPayload | InsertReferenceSyncedBlockPayload | InsertSourceSyncedBlockPayload | InsertSnippetAEP | FailedToInsertSnippetAEP;
export {};
