import * as lit_html from 'lit-html';
import * as lit from 'lit';
import { LitElement } from 'lit';
import { F as FormSubmitController } from '../form-controller-BR0gZhrG.js';
import { a as TypeRoundedSizes } from '../constants-CcB9aXsT.js';
declare const variants: readonly ["standard", "text", "outlined"];
declare enum EnumVariants {
STANDARD = "standard",
TEXT = "text",
OUTLINED = "outlined"
}
type TypeVariants = typeof variants[number];
declare const targets: readonly ["_blank", "_self", "_parent", "_top"];
declare enum EnumTargets {
BLANK = "_blank",
SELF = "_self",
PARENT = "_parent",
TOP = "_top"
}
type TypeTargets = typeof targets[number];
declare const types: readonly ["button", "submit", "reset"];
declare enum EnumTypes {
BUTTON = "button",
SUBMIT = "submit",
RESET = "reset"
}
type TypeTypes = typeof types[number];
/**
* @since 1.0.0
* @status stable
*
* @tagname kemet-button
* @summary A versatile button that can be used either to submit a form, trigger an action, or link to content.
*
* @prop {boolean} active - Determines if the button is active
* @prop {boolean} hover - Is true when the button is hovered
* @prop {boolean} focused - Is true when the button is focused
* @prop {string} link - The url a button should link too
* @prop {boolean} outlined - Outline style for a button
* @prop {boolean} disabled - Determines whether not a button is disabled
* @prop {TypeVariants} variant - Controls the type of button. standard | text | circle | rounded | pill
* @prop {TypeTargets} target - The target attribute for a link
* @prop {TypeTypes} type - The type attribute for a button
* @prop {TypeRoundedSizes} rounded - The border radius of the button
*
* @slot left - Allows you to place an icon to the left of the button text.
* @slot right - Allows you to place an icon to the right of the button text.
*
* @csspart button - The button or anchor element.
*
* @cssproperty --kemet-button-font-size - The font size.
* @cssproperty --kemet-button-color - The text color.
* @cssproperty --kemet-button-width - The width.
* @cssproperty --kemet-button-height - The height.
* @cssproperty --kemet-button-border - The border.
* @cssproperty --kemet-button-border-radius - The border radius.
* @cssproperty --kemet-button-transition-speed - The transition speed of the hover effect.
* @cssproperty --kemet-button-background-color - The background color.
* @cssproperty --kemet-button-hover-brightness - The brightness of the hover effect.
* @cssproperty --kemet-button-gap - The gap between the button and icons.
* @cssproperty --kemet-button-padding - The button padding.
* @cssproperty --kemet-button-hover-decoration - The decoration for a text button's hover.
* @cssproperty --kemet-button-circle-size - The diameter of a circle button.
* @cssproperty --kemet-button-rounded-amount - The border radius of the rounded button.
* @cssproperty --kemet-button-border-width - The width of the outline border.
* @cssproperty --kemet-button-border-style - The style of the outline border.
* @cssproperty --kemet-button-border-color - The color of the outline border.
* @cssproperty --kemet-button-disabled-opacity - The opacity of the disabled state.
*
*/
declare class KemetButton extends LitElement {
/** @internal */
formSubmitController: FormSubmitController;
static styles: lit.CSSResult[];
active: boolean;
hover: boolean;
focused: boolean;
link: string;
disabled: boolean;
variant: TypeVariants;
target: TypeTargets;
type: TypeTypes;
iconLeft: boolean;
iconRight: boolean;
rounded: TypeRoundedSizes;
constructor();
render(): lit_html.TemplateResult<1>;
handleLeftChange(): void;
handleRightChange(): void;
/**
* Sets hover to true onMouseOver
* @private
*/
handleMouseOver(): void;
/**
* Sets hover to false onMouseOut
* @private
*/
handleMouseOut(): void;
/**
* Handles click behavior
* @private
*/
handleClick(): void;
/**
* Handles blur
* @private
*/
handleBlur(): void;
/**
* Handles keyup
* @private
* @param {object} event - event object
*/
handleKeyUp(event: KeyboardEvent): void;
}
declare global {
interface HTMLElementTagNameMap {
'kemet-button': KemetButton;
}
}
export { EnumTargets, EnumTypes, EnumVariants, type TypeTargets, type TypeTypes, type TypeVariants, KemetButton as default, targets, types, variants };