<!-- API Report Version: 2.3 -->

## API Report File for "@atlaskit/editor-plugin-block-type"

> Do not edit this file. This report is auto-generated using
> [API Extractor](https://api-extractor.com/).
> [Learn more about API reports](https://hello.atlassian.net/wiki/spaces/UR/pages/1825484529/Package+API+Reports)

### Table of contents

- [Main Entry Types](#main-entry-types)
- [Peer Dependencies](#peer-dependencies)

### Main Entry Types

<!--SECTION START: Main Entry Types-->

```ts
import type { AllowedBlockTypes } from '@atlaskit/editor-common/types';
import type { analyticsPlugin } from '@atlaskit/editor-plugin-analytics';
import type { Command } from '@atlaskit/editor-common/types';
import type { EditorCommand } from '@atlaskit/editor-common/types';
import type { HeadingLevelsAndNormalText } from '@atlaskit/editor-common/types';
import type { INPUT_METHOD } from '@atlaskit/editor-common/analytics';
import type { MenuItem } from '@atlaskit/editor-common/ui-menu';
import type { MessageDescriptor } from 'react-intl';
import type { NextEditorPlugin } from '@atlaskit/editor-common/types';
import type { OptionalPlugin } from '@atlaskit/editor-common/types';

// @public (undocumented)
export interface BlockType {
	// (undocumented)
	level?: HeadingLevelsAndNormalText;
	// (undocumented)
	name: string;
	// (undocumented)
	nodeName: string;
	// (undocumented)
	tagName?: string;
	// (undocumented)
	title: MessageDescriptor;
}

// @public (undocumented)
export type BlockTypePlugin = NextEditorPlugin<
	'blockType',
	{
		pluginConfiguration: BlockTypePluginOptions | undefined;
		dependencies: [OptionalPlugin<typeof analyticsPlugin>];
		sharedState: BlockTypeState | undefined;
		actions: {
			insertBlockQuote: (inputMethod: InputMethod) => Command;
		};
		commands: {
			setTextLevel: (level: TextBlockTypes, inputMethod: InputMethod) => EditorCommand;
		};
	}
>;

// @public (undocumented)
export const blockTypePlugin: BlockTypePlugin;

// @public (undocumented)
export interface BlockTypePluginOptions {
	// (undocumented)
	allowBlockType?: {
		exclude?: Array<AllowedBlockTypes>;
	};
	// (undocumented)
	isUndoRedoButtonsEnabled?: boolean;
	// (undocumented)
	lastNodeMustBeParagraph?: boolean;
}

// @public (undocumented)
export type BlockTypeState = {
	currentBlockType: BlockType;
	blockTypesDisabled: boolean;
	availableBlockTypes: BlockType[];
	availableWrapperBlockTypes: BlockType[];
};

// @public (undocumented)
export type DropdownItem = MenuItem & {
	value: BlockType;
};

// @public (undocumented)
export type InputMethod =
	| INPUT_METHOD.FORMATTING
	| INPUT_METHOD.INSERT_MENU
	| INPUT_METHOD.KEYBOARD
	| INPUT_METHOD.SHORTCUT
	| INPUT_METHOD.TOOLBAR;

// @public (undocumented)
export type TextBlockTypes =
	| 'heading1'
	| 'heading2'
	| 'heading3'
	| 'heading4'
	| 'heading5'
	| 'heading6'
	| 'normal';

// (No @packageDocumentation comment for this package)
```

<!--SECTION END: Main Entry Types-->

### Peer Dependencies

<!--SECTION START: Peer Dependencies-->

```json
{
	"react": "^16.8.0",
	"react-intl": "npm:react-intl@^5.18.1"
}
```

<!--SECTION END: Peer Dependencies-->
