/**
 * @license
 * Copyright (c) %FIRST_YEAR% %CURRENT_YEAR%, Oracle and/or its affiliates.
 * Licensed under The Universal Permissive License (UPL), Version 1.0
 * as shown at https://oss.oracle.com/licenses/upl/
 * @ignore
 */
import { ComponentChildren, ComponentProps, Ref } from 'preact';
import { BaseButton } from '../UNSAFE_BaseButton';
import type { DimensionProps } from '../utils/UNSAFE_interpolations/dimensions';
import { HTMLAttributesSignalExcluded } from '../utils/UNSAFE_attributeUtils';
import { TestIdProps } from '../hooks/UNSAFE_useTestId';
import { ButtonIntrinsicProps } from '../utils/UNSAFE_buttonUtils';
type IntrinsicProps = Pick<HTMLAttributesSignalExcluded<HTMLElement>, 'autofocus'>;
type WidthInterpolationProps = Pick<DimensionProps, 'width'>;
type BaseButtonProps = ComponentProps<typeof BaseButton>;
type Props = IntrinsicProps & ButtonIntrinsicProps & Pick<BaseButtonProps, 'aria-describedby'> & WidthInterpolationProps & TestIdProps & {
    /**
     * The startIcon is the button's start icon.
     */
    startIcon?: ComponentChildren;
    /**
     * Specifies that a quick indeterminate action is taking place, making the button read-only.
     */
    isLoading?: boolean;
    /**
     * Specifies that the button element should be disabled.
     */
    isDisabled?: boolean;
    /**
     * Specifes the button type
     */
    type?: 'button' | 'submit';
    /**
     * label - button label, used for accessibility if no override
     */
    label?: string;
    /**
     * Indicates in what states the button has chrome (background and border).
     *     "borderless"': "Borderless buttons are a more prominent variation. Borderless
     * buttons are useful for supplemental actions that require minimal emphasis.",
     *     "outlined"': "Outlined buttons are salient, but lighter weight than
     * solid buttons. Outlined buttons are useful for secondary actions.",
     *     "solid"': "Solid buttons stand out, and direct the user's attention to the
     *  most important actions in the UI.",
     *     "callToAction"': "A Call To Action (CTA) button guides the user to take or
     * complete the action that is the main goal of the page or page section. There
     * should only be one CTA button on a page at any given time.",
     */
    variant?: 'borderless' | 'outlined' | 'solid' | 'callToAction';
    /**
     * The size indicates how large the button is rendered.
     */
    size?: 'sm' | 'md' | 'lg';
    /**
     * Edge can be used to specify that the button is intended to go at the bottom of
     * a region, stretching from left to right.
     */
    edge?: ComponentProps<typeof BaseButton>['edge'];
    /**
     * Triggered when a button is clicked, whether by keyboard, mouse, or touch events.
     */
    onAction?: () => void | null;
    /**
     * Display indicates whether only the label or all elements should be rendered by the button.
     */
    display?: 'label' | 'all';
    /**
     * tooltip - overrides the aria-label for the tooltip
     */
    tooltip?: string;
};
/**
 * A Progress button is a push button that can show progress.
 */
export declare const ProgressButton: import("preact").FunctionalComponent<import("preact/compat").PropsWithoutRef<Props> & {
    ref?: Ref<HTMLButtonElement> | undefined;
}>;
export {};
