import { nothing, TemplateResult } from "lit";
import { UiElement } from "../UiElement.js";
import UiRipple from "../effects/ripple.js";
import { BeginPressConfig, EndPressConfig } from "../controllers/ActionController.js";
import '../../define/ui/ui-ripple.js';
export declare enum ChipType {
    assist = "assist",
    filter = "filter",
    input = "input",
    suggestion = "suggestion"
}
/**
 * @slot icon - The leading icon, sized 18x18 px
 * @slot avatar - The leading image, sized 24x24 px
 * @fires list - When the user requested to activate the list associated with the element.
 * @fires select - When the checked state changed through a user interaction. This only related to `filter` chips. Note, `select` is dispatched just before the `click` event.
 */
export default class UiChip extends UiElement {
    /**
     * Whether the chip is disabled. The user can't interact with the chip when `true`.
     * @attribute
     */
    get disabled(): boolean;
    set disabled(value: boolean);
    /**
     * The type of the rendered chip.
     * @attribute
     *
     * @see https://m3.material.io/components/chips/guidelines
     */
    type: ChipType;
    /**
     * Whether the chip should be rendered as elevated.
     * @attribute
     */
    elevated?: boolean;
    /**
     * Whether the chip renders the "close" icon at the end.
     * @attribute
     */
    closable?: boolean;
    /**
     * Whether the chip is currently checked.
     * Note, this controls the presentation layer only. It has no meaning when it comes to forms and inputs.
     * @attribute
     */
    checked?: boolean;
    /**
     * The ID attribute of the list element that is rendered after activating the chip.
     * When this is set the chip renders the dropdown icon at the end and sets `aria-*`
     * attributes informing the assistive technology that this chip controls a list.
     *
     * @attribute
     */
    list?: string;
    protected ripple: Promise<UiRipple | null>;
    protected showRipple: boolean;
    /**
     * Determines when the element has an icon in the "icon" slot.
     */
    protected hasIcon: boolean;
    /**
     * Determines when the element has an image in the "avatar" slot.
     */
    protected hasAvatar: boolean;
    constructor();
    connectedCallback(): void;
    protected pressRipple(): Promise<void>;
    protected endRipple(): Promise<void>;
    beginPress(options: BeginPressConfig): void;
    handleKeyDown(e: KeyboardEvent): Promise<void>;
    protected handleFocus(): Promise<void>;
    protected handleBlur(): Promise<void>;
    protected readonly getRipple: () => Promise<UiRipple | null>;
    endPress(info: EndPressConfig): void;
    handleClick(e: MouseEvent): void;
    /**
     * Toggles the "filter" type of the chip.
     */
    toggleChecked(): void;
    /**
     * Sets the `hasIcon` state property when the "icon" slot change event is dispatched.
     */
    protected handleIconSlotChange(e: Event): void;
    /**
     * Sets the `_hasAvatar` state property when the "avatar" slot change event is dispatched.
     */
    protected handleAvatarSlotChange(e: Event): void;
    protected handleListClick(e: Event): void;
    protected handleClose(e: Event): void;
    protected closeAction(): Promise<void>;
    protected listAction(): Promise<void>;
    protected render(): TemplateResult;
    protected renderLeadingIcon(): TemplateResult | typeof nothing;
    protected renderAvatar(): TemplateResult | typeof nothing;
    protected renderTrailingIcon(): TemplateResult | typeof nothing;
    protected renderRipple: () => TemplateResult;
}
//# sourceMappingURL=UiChip.d.ts.map