/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

import { Codicon } from '@sussudio/base/common/codicons.mjs';
import { ResolvedKeybinding } from '@sussudio/base/common/keybindings.mjs';
import { Disposable } from '@sussudio/base/common/lifecycle.mjs';
import '../../../css!./actionWidget.mjs';
import { IActionItem } from '../common/actionWidget.mjs';
import { IContextViewService } from '../../contextview/browser/contextView.mjs';
import { IKeybindingService } from '../../keybinding/common/keybinding.mjs';
export declare const acceptSelectedActionCommand = 'acceptSelectedCodeAction';
export declare const previewSelectedActionCommand = 'previewSelectedCodeAction';
export interface IRenderDelegate {
	onHide(didCancel?: boolean): void;
	onSelect(action: IActionItem, preview?: boolean): Promise<any>;
}
export interface IListMenuItem<T extends IActionItem> {
	readonly item?: T;
	readonly kind: ActionListItemKind;
	readonly group?: {
		kind?: any;
		icon?: {
			codicon: Codicon;
			color?: string;
		};
		title: string;
	};
	readonly disabled?: boolean;
	readonly label?: string;
	readonly description?: string;
	readonly keybinding?: ResolvedKeybinding;
}
export declare const enum ActionListItemKind {
	Action = 'action',
	Header = 'header',
}
export declare class ActionList<T extends IActionItem> extends Disposable {
	private readonly _delegate;
	private readonly _contextViewService;
	private readonly _keybindingService;
	readonly domNode: HTMLElement;
	private readonly _list;
	private readonly _actionLineHeight;
	private readonly _headerLineHeight;
	private readonly _allMenuItems;
	constructor(
		user: string,
		preview: boolean,
		items: readonly IListMenuItem<T>[],
		_delegate: IRenderDelegate,
		_contextViewService: IContextViewService,
		_keybindingService: IKeybindingService,
	);
	private focusCondition;
	hide(didCancel?: boolean): void;
	layout(minWidth: number): number;
	focusPrevious(): void;
	focusNext(): void;
	acceptSelected(preview?: boolean): void;
	private onListSelection;
	private onListHover;
	private onListClick;
}
