/**
 *
 * carbon-angular v0.0.0 | combo-button.component.d.ts
 *
 * Copyright 2014, 2026 IBM
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *   http://www.apache.org/licenses/LICENSE-2.0

 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */


import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnChanges, OnDestroy, QueryList, Renderer2, SimpleChanges, TemplateRef, ViewContainerRef } from "@angular/core";
import { ContextMenuItemComponent, ItemClickEvent } from "carbon-components-angular/context-menu";
import * as i0 from "@angular/core";
declare type ComboButtonPlacement = "top" | "top-start" | "top-end" | "bottom" | "bottom-start" | "bottom-end";
export declare class ComboButtonComponent implements OnChanges, AfterViewInit, OnDestroy {
    protected ngZone: NgZone;
    protected renderer: Renderer2;
    protected hostElement: ElementRef;
    protected viewContainerRef: ViewContainerRef;
    protected changeDetectorRef: ChangeDetectorRef;
    static comboButtonCounter: number;
    comboId: string;
    set projectedMenuItems(itemList: QueryList<ContextMenuItemComponent>);
    size: "sm" | "md" | "lg";
    label: string;
    disabled: boolean;
    menuAlignment: ComboButtonPlacement;
    description: string;
    tooltipAutoAlign: boolean;
    tooltipPlacement: string;
    open: boolean;
    actionClick: EventEmitter<Event>;
    comboButtonContainer: boolean;
    get sizeLg(): boolean;
    get sizeMd(): boolean;
    get sizeSm(): boolean;
    get ariaOwns(): string;
    menuTemplate: TemplateRef<any>;
    protected documentClick: any;
    protected unmountFloatingElement: Function;
    private subscriptions;
    private _alignment;
    private menuRef;
    constructor(ngZone: NgZone, renderer: Renderer2, hostElement: ElementRef, viewContainerRef: ViewContainerRef, changeDetectorRef: ChangeDetectorRef);
    /**
     * In case user updates alignment, store initial value.
     * This allows us to test user passed alignment on each open
     */
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * If user has passed in true for open, we dynamically open the menu
     */
    ngAfterViewInit(): void;
    /**
    * Clean up Floating-ui & subscriptions
    */
    ngOnDestroy(): void;
    /**
     * As of now, menu button does not support nexted menu, on button click it should close
     */
    handleMenuItemClick(event: ItemClickEvent): void;
    /**
     * On body click, close the menu
     * @param event
     */
    handleFocusOut(event: any): void;
    /**
     * Clean up `autoUpdate` if auto alignment is enabled
     */
    cleanUp(): void;
    /**
     * On action click, notify user
     * If the menu is open, close the menu
     * @param event
     */
    onActionClick(event: PointerEvent): void;
    /**
     * Handles emitting open/close event
     */
    toggleMenu(): void;
    roundByDPR(value: any): number;
    /**
     * Compute position of menu
     */
    recomputePosition(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ComboButtonComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ComboButtonComponent, "cds-combo-button", never, { "comboId": "comboId"; "size": "size"; "label": "label"; "disabled": "disabled"; "menuAlignment": "menuAlignment"; "description": "description"; "tooltipAutoAlign": "tooltipAutoAlign"; "tooltipPlacement": "tooltipPlacement"; "open": "open"; }, { "actionClick": "actionClick"; }, ["projectedMenuItems"], ["cds-menu-item, cds-menu-divider"], false>;
}
export {};
