import { KeyboardEvent, MouseEvent, ElementType, ComponentPropsWithRef } from 'react';
export type TLordIconButtonProps<TStringOrComponent extends ElementType = 'button'> = {
    /**
     * Used as the HTML type attribute.
     */
    type?: 'button' | 'reset' | 'submit';
    /**
     * Should describe what the button does, for accessibility purposes (screen-reader users)
     */
    label: string;
    /**
     * The left icon displayed within the button.
     */
    lordIconKey: string;
    /**
     * If this is active, it means the button will persist in an "active" state when toggled (see `isToggled`), and back to normal state when untoggled
     */
    isToggleButton?: boolean;
    /**
     * Tells when the button should present a toggled state. It does not have any effect when `isToggleButton` is `false`.
     */
    isToggled?: boolean;
    /**
     * Tells when the button should present a disabled state.
     */
    isDisabled?: boolean;
    /**
     * Handler when the button is clicked.
     */
    onClick?: (event: MouseEvent<HTMLButtonElement> | KeyboardEvent<HTMLButtonElement>) => void;
    /**
     * Indicates the size of the button.
     */
    size?: 'medium' | 'big';
    /**
     * Indicates the color scheme of the button.
     * @deprecated Use `tone` instead.
     */
    theme?: 'default' | 'info';
    /**
     * Indicates the tone of the button.
     */
    tone?: 'secondary' | 'info';
} & ComponentPropsWithRef<TStringOrComponent>;
export declare const LordIconButton: {
    <TStringOrComponent extends ElementType = "button">(props: TLordIconButtonProps<TStringOrComponent>): import("@emotion/react/jsx-runtime").JSX.Element;
    displayName: string;
    defaultProps: Pick<TLordIconButtonProps<"button">, "type" | "theme" | "size" | "isToggleButton" | "tone">;
};
export default LordIconButton;
