import { PropertyValueMap, PropertyValues } from "lit";
import { FRoot } from "../../mixins/components/f-root/f-root";
import { FIcon } from "../f-icon/f-icon";
import { FCounter } from "../f-counter/f-counter";
declare const variants: readonly ["round", "curved", "block"];
declare const categories: readonly ["fill", "outline", "transparent", "packed"];
declare const sizes: readonly ["large", "medium", "small", "x-small"];
export type FIconButtonVariant = (typeof variants)[number];
export type FIconButtonType = (typeof categories)[number];
export type FIconButtonSize = (typeof sizes)[number];
export type FIconButtonState = "primary" | "danger" | "warning" | "success" | "neutral" | "highlight" | "inherit" | `custom, ${string}`;
export declare class FIconButton extends FRoot {
    /**
     * css loaded from scss file
     */
    static styles: import("lit").CSSResult[];
    /**
     * @attribute local state for managing custom fill.
     */
    fill: string;
    /**
     * @attribute local state for managing input class.
     */
    iconInputClass: boolean;
    /**
     * @attribute Icon property defines what icon will be displayed on the icon. It can take the icon name from a library , any inline SVG or any URL for the image.
     */
    icon: string;
    /**
     * @attribute Variants are various representations of an icon button. For example an icon button can be round, curved or block.
     */
    variant?: FIconButtonVariant;
    /**
     * @attribute Type of f-icon-button
     */
    category?: FIconButtonType;
    /**
     * @attribute Size of f-icon-button
     */
    size?: FIconButtonSize;
    /**
     * @attribute Size of f-icon-button
     */
    state?: FIconButtonState;
    /**
     * @attribute Counter property enables a counter on the button.
     */
    counter?: string;
    /**
     * @attribute Loader icon replaces the content of the button .
     */
    loading?: boolean;
    /**
     * @attribute The disabled attribute can be set to keep a user from clicking on the button.
     */
    disabled?: boolean;
    /**
     * @attribute effect to apply
     */
    effect?: "pulse" | "wiggle";
    /**
     * icon element reference
     */
    iconElement: FIcon;
    /**
     * icon element reference
     */
    counterElement?: FCounter;
    /**
     * compute counter size based on button size
     */
    get counterSize(): "small" | "medium" | "large" | undefined;
    /**
     * apply inline styles to shadow-dom for custom fill.
     */
    applyStyles(): string;
    /**
     * validation for all atrributes
     */
    validateProperties(): void;
    protected willUpdate(changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void;
    render(): import("lit-html").TemplateResult<1>;
    protected updated(changedProperties: PropertyValues): void;
}
declare global {
    interface HTMLElementTagNameMap {
        "f-icon-button": FIconButton;
    }
}
export {};
