/**
* @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
* For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
*/
/**
* @module indent/integrations/indentblocklistcommand
*/
import { Command, type Editor } from "@ckeditor/ckeditor5-core";
import type { IndentBehavior } from "../indentcommandbehavior/indentbehavior.js";
/**
* The indent block list command.
*
* The command is registered by the {@link module:indent/integrations/indentblocklistintegration~IndentBlockListIntegration} as
* `'indentBlockList'` for indenting lists and `'outdentBlockList'` for outdenting lists.
*
* To increase/decrease block indentation of the list the selection must be at the start of the first top–level list item
* in the list.
*
* To increase block indentation of the list, execute the command:
*
* ```ts
* editor.execute( 'indentBlockList' );
* ```
*
* To decrease block indentation of the list, execute the command:
*
* ```ts
* editor.execute( 'outdentBlockList' );
* ```
*/
export declare class IndentBlockListCommand extends Command {
	/**
	* The command's indentation behavior.
	*/
	private readonly _indentBehavior;
	/**
	* Creates an instance of the command.
	*/
	constructor(editor: Editor, indentBehavior: IndentBehavior);
	/**
	* @inheritDoc
	*/
	override refresh(): void;
	/**
	* Executes the command.
	*
	* @fires execute
	* @param options Command options.
	* @param options.firstListOnly When `true`, indentation is applied only to the first list at the beginning of the selection.
	* When `false` or omitted, indentation is applied to all lists of the selection.
	*/
	override execute(options?: {
		firstListOnly?: boolean;
	}): void;
	/**
	* Returns the list item at the beginning of the current selection if it is the first top–level list item in the list.
	* Otherwise, returns `null`.
	*/
	private _getFirstListItemIfSelectionIsAtListStart;
}
