/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { ElementRef, EventEmitter, AfterViewInit, OnChanges, SimpleChanges, NgZone, ChangeDetectorRef, Renderer2, OnDestroy, DoCheck } from '@angular/core';
import { LocalizationService } from '@progress/kendo-angular-l10n';
import { Align, PopupService } from '@progress/kendo-angular-popup';
import { ListButton } from './../listbutton/list-button';
import { PopupSettings } from './../listbutton/popup-settings';
import { ButtonItemTemplateDirective } from './../listbutton/button-item-template.directive';
import { FocusService } from './../focusable/focus.service';
import { NavigationService } from './../navigation/navigation.service';
import { PreventableEvent } from '../preventable-event';
import { ButtonFillMode, ButtonRounded, ButtonSize, ButtonThemeColor } from '../common/models';
import { PopupContainerService } from '../listbutton/container.service';
import { SVGIcon } from '@progress/kendo-svg-icons';
import * as i0 from "@angular/core";
/**
* Represents the Kendo UI SplitButton component for Angular.
*
* @example
* ```ts
* @Component({
* selector: 'my-app',
* template: `
* Paste
* `
* })
*
* class AppComponent {
* public items: Array = [{
* text: 'Keep Text Only',
* icon: 'clipboard-text',
* click: () => { console.log('Keep Text Only click handler'); }
* }, {
* text: 'Paste as HTML',
* icon: 'clipboard-code'
* }
* ];
*
* public onSplitButtonClick(dataItem: any): void {
* console.log('Paste');
* }
* }
* ```
*/
export declare class SplitButtonComponent extends ListButton implements AfterViewInit, OnChanges, OnDestroy, DoCheck {
private localization;
private renderer;
/**
* Sets the text displayed within the SplitButton.
*
* @remarks
* This property is related to accessibility.
*/
text: string;
/**
* Specifies an icon to display next to the button text ([see example](https://www.telerik.com/kendo-angular-ui/components/buttons/splitbutton/data-binding#arrays-of-complex-data)).
*/
icon: string;
/**
* Specifies an `SVGIcon` to display next to the button text.
*/
svgIcon: SVGIcon;
/**
* Specifies a custom CSS class for the icon displayed next to the button text ([see example](https://www.telerik.com/kendo-angular-ui/components/buttons/splitbutton/data-binding#arrays-of-complex-data)).
*/
iconClass: string;
/**
* Specifies the `type` attribute of the main button.
*/
type: string;
/**
* Specifies the URL of an image to display next to the button text ([see example](https://www.telerik.com/kendo-angular-ui/components/buttons/splitbutton/data-binding#arrays-of-complex-data)).
*/
imageUrl: string;
/**
* Configures the padding of the SplitButton ([see example](https://www.telerik.com/kendo-angular-ui/components/buttons/api/splitbuttoncomponent#size)). The default value is set by the Kendo theme.
*/
size: ButtonSize;
/**
* Configures the border radius of the SplitButton ([see example](https://www.telerik.com/kendo-angular-ui/components/buttons/api/splitbuttoncomponent#rounded)). The default value is set by the Kendo theme.
*/
set rounded(rounded: ButtonRounded);
get rounded(): ButtonRounded;
/**
* Configures the background and border styles of the SplitButton ([see example](https://www.telerik.com/kendo-angular-ui/components/buttons/api/splitbuttoncomponent#fillmode)). The default value is set by the Kendo theme.
*/
set fillMode(fillMode: ButtonFillMode);
get fillMode(): ButtonFillMode;
/**
* Configures the theme color of the SplitButton. The theme color applies to the background, border, and text ([see example](https://www.telerik.com/kendo-angular-ui/components/buttons/api/splitbuttoncomponent#themecolor)). The default value is set by the Kendo theme.
*/
themeColor: ButtonThemeColor;
/**
* Disables the SplitButton when set to `true` ([see example](https://www.telerik.com/kendo-angular-ui/components/buttons/splitbutton/data-binding#arrays-of-complex-data)).
*/
set disabled(value: boolean);
get disabled(): boolean;
/**
* Configures the popup settings of the SplitButton.
*/
set popupSettings(settings: PopupSettings);
get popupSettings(): PopupSettings;
/**
* Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component.
*
* @default 0
*/
tabIndex: number;
/**
* Configures the text field of the button-list popup.
*/
textField: string;
/**
* Sets the data for the SplitButton. Provide the data as an array-like list.
*/
set data(data: any);
get data(): any;
/**
* Specifies the CSS classes for the button that opens the popup.
* Supports values compatible with [`ngClass`](link:site.data.urls.angular['ngclassapi']).
*/
arrowButtonClass: any;
/**
* Specifies the name of the font icon displayed on the button that opens the popup.
*/
arrowButtonIcon: string;
/**
* Specifies the [`SVGIcon`](https://www.telerik.com/kendo-angular-ui/components/icons/api/svgiconcomponent) displayed on the button that opens the popup.
*/
arrowButtonSvgIcon: SVGIcon;
/**
* Sets attributes for the main button.
*/
set buttonAttributes(buttonAttributes: {
[key: string]: string;
});
get buttonAttributes(): {
[key: string]: string;
};
/**
* Emits an event when the main button is clicked.
*/
buttonClick: EventEmitter;
/**
* Emits an event when an item in the drop-down list is clicked. The event data contains the clicked item's data.
*/
itemClick: EventEmitter;
/**
* Emits an event when the SplitButton gains focus.
*/
onFocus: EventEmitter;
/**
* Emits an event when the SplitButton is blurred.
*/
onBlur: EventEmitter;
/**
* Emits an event before the popup opens. This event is preventable.
*/
open: EventEmitter;
/**
* Emits an event before the popup closes. This event is preventable.
*/
close: EventEmitter;
/**
* Specifies a template to customize the content of the items in the drop-down list.
*/
itemTemplate: ButtonItemTemplateDirective;
activeArrow: boolean;
listId: string;
/**
* @hidden
*/
get hasContent(): boolean;
/**
* @hidden
*/
get active(): boolean;
/**
* @hidden
*/
get componentTabIndex(): number;
private buttonText;
private arrowButtonClicked;
private _rounded;
private _fillMode;
private _buttonAttributes;
private documentMouseUpSub;
set isFocused(value: boolean);
get isFocused(): boolean;
get widgetClasses(): boolean;
get dir(): string;
/**
* @hidden
*/
get ariaLabel(): string;
/**
* @hidden
*/
messageFor(key: string): string;
/**
* @hidden
*/
onButtonFocus(event: FocusEvent): void;
/**
* @hidden
*/
onArrowButtonClick(): void;
/**
* @hidden
*/
toggleButtonActiveState(enable: boolean): void;
/**
* @hidden
*/
toggleArrowButtonActiveState(enable: boolean): void;
/**
* @hidden
*/
onButtonClick(): void;
/**
* @hidden
*/
onButtonBlur(): void;
/**
* @hidden
*/
keydown(event: any): void;
/**
* @hidden
*/
keyup(event: any): void;
ngDoCheck(): void;
ngAfterViewInit(): void;
ngOnChanges(changes: SimpleChanges): void;
/**
* @hidden
*/
ngOnDestroy(): void;
/**
* @hidden
*/
protected onNavigationEnterUp(args?: any): void;
/**
* @hidden
*/
togglePopupVisibility(): void;
/**
* @hidden
*/
wrapperContains(element: any): boolean;
/**
* @hidden
*/
get anchorAlign(): Align;
/**
* @hidden
*/
get popupAlign(): Align;
/**
* @hidden
*/
get isIconButton(): boolean;
/**
* Focuses the SplitButton component.
*/
focus(): void;
/**
* Blurs the SplitButton component.
*/
blur(): void;
constructor(focusService: FocusService, navigationService: NavigationService, wrapperRef: ElementRef, zone: NgZone, popupService: PopupService, elRef: ElementRef, localization: LocalizationService, cdr: ChangeDetectorRef, renderer: Renderer2, containerService: PopupContainerService);
/**
* Returns the current open state of the popup.
*/
get isOpen(): boolean;
private updateButtonText;
private handleClasses;
private toggleButtonIconClass;
private handleButtonAttributes;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}