/**
 * The interface that buttons of various types implement. The properties in this interface
 * are leveraged by the shared button pattern css.
 */
export interface ButtonPattern {
    /**
     * The appearance the button should have.
     */
    appearance: ButtonAppearance;
    /**
     * Specify as 'true' to hide the text content of the button. The button will
     * become square, and the text content will be used as the label of the button
     * for accessibility purposes.
     */
    contentHidden: boolean;
    /**
     * Whether or not the button is disabled.
     */
    disabled: boolean;
}
/**
 * Interface for buttons that support appearance variants.
 */
export interface ButtonAppearanceVariantPattern {
    /**
     * The appearance variant the button should have.
     */
    appearanceVariant: ButtonAppearanceVariant;
}
/**
 * Types of button appearance.
 * @public
 */
export declare const ButtonAppearance: {
    readonly outline: "outline";
    readonly ghost: "ghost";
    readonly block: "block";
};
export type ButtonAppearance = (typeof ButtonAppearance)[keyof typeof ButtonAppearance];
/**
 * Types of button appearance variants.
 * @public
 */
export declare const ButtonAppearanceVariant: {
    readonly default: undefined;
    readonly primary: "primary";
    readonly accent: "accent";
};
export type ButtonAppearanceVariant = (typeof ButtonAppearanceVariant)[keyof typeof ButtonAppearanceVariant];
