import { PropertyValues, TemplateResult } from 'lit';
import { BeginPressConfig, EndPressConfig } from '../../../controllers/ActionController.js';
import UiRipple from '../../ripple/internals/ripple.js';
import { UiElement } from '../../UiElement.js';
import '../../ripple/ui-ripple.js';
/**
 * The type of the icon button rendered.
 */
export declare enum IconButtonType {
    'filled' = "filled",
    'tonal' = "tonal",
    'outlined' = "outlined",
    'standard' = "standard"
}
/**
 * @fires active - An event dispatched when the `active` state  has changed. This only happens when the button is `toggle`.
 */
export default class UiIconButton extends UiElement {
    /**
     * The type of the rendered button according to Material 3 spec.
     *
     * @default {ButtonType.filled}
     * @attribute
     */
    accessor type: IconButtonType;
    /**
     * Whether the button can be toggled.
     * A toggle button behaves different as it gets the `aria-pressed` attribute
     * which changes depending on the pressed state.
     * A toggle button is activated until it is clicked/pressed again.
     * A toggle button dispatched `active` event when the press state change.
     * The host can check the `active` property to know the state.
     *
     * @attribute
     */
    accessor toggle: boolean | undefined;
    /**
     * A flag that determines whether the button is activated (pressed when `toggle` is set).
     * It is `undefined` and makes no effect when `toggle` is not set.
     *
     * @attribute
     */
    accessor active: boolean | undefined;
    protected accessor ripple: Promise<UiRipple | null>;
    protected accessor showRipple: boolean;
    get disabled(): boolean;
    /**
     * When set, the button is a disabled state.
     * @attribute
     */
    set disabled(value: boolean);
    protected readonly getRipple: () => Promise<UiRipple | null>;
    constructor();
    connectedCallback(): void;
    protected update(changedProperties: PropertyValues<this>): void;
    protected pressRipple(): Promise<void>;
    protected endRipple(): Promise<void>;
    beginPress(options: BeginPressConfig): void;
    endPress(config: EndPressConfig): void;
    protected render(): TemplateResult;
    protected renderRipple: () => TemplateResult;
}
//# sourceMappingURL=IconButton.d.ts.map