import type { INPUT_METHOD } from '@atlaskit/editor-common/analytics';
import type { Command, NextEditorPlugin, OptionalPlugin } from '@atlaskit/editor-common/types';
import type { AnalyticsPlugin } from '@atlaskit/editor-plugin-analytics';
import type { BlockMenuPlugin } from '@atlaskit/editor-plugin-block-menu';
import type { CompositionPlugin } from '@atlaskit/editor-plugin-composition';
import type { DecorationsPlugin } from '@atlaskit/editor-plugin-decorations';
import type { EditorDisabledPlugin } from '@atlaskit/editor-plugin-editor-disabled';
import type { EditorViewModePlugin } from '@atlaskit/editor-plugin-editor-viewmode';
import type { FeatureFlagsPlugin } from '@atlaskit/editor-plugin-feature-flags';
import type { InteractionPlugin } from '@atlaskit/editor-plugin-interaction';
import type { SelectionPlugin } from '@atlaskit/editor-plugin-selection';
import type { ToolbarPlugin } from '@atlaskit/editor-plugin-toolbar';
import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
import type { CodeBlockPluginOptions } from './types';
type CodeBlockDependencies = [
    DecorationsPlugin,
    CompositionPlugin,
    OptionalPlugin<AnalyticsPlugin>,
    OptionalPlugin<EditorDisabledPlugin>,
    OptionalPlugin<FeatureFlagsPlugin>,
    OptionalPlugin<InteractionPlugin>,
    OptionalPlugin<EditorViewModePlugin>,
    OptionalPlugin<BlockMenuPlugin>,
    OptionalPlugin<SelectionPlugin>,
    OptionalPlugin<ToolbarPlugin>
];
export type CodeBlockPlugin = NextEditorPlugin<'codeBlock', {
    actions: {
        insertCodeBlock: (inputMethod: INPUT_METHOD) => Command;
    };
    dependencies: CodeBlockDependencies;
    pluginConfiguration: CodeBlockPluginOptions | undefined;
    sharedState: {
        copyButtonHoverNode: PMNode;
    } | undefined;
}>;
export {};
