import Tailwind from '../base/tailwind-base';
import type { PropertyValues } from 'lit';
/**
* @tag plus-toggle
* @summary Toggle component that provides a switch with various styles and states.
*
* @slot - The default slot for toggle text content when no text property is specified
*
* @csspart base - The component's base wrapper
* @csspart label - The label element
* @csspart control - The control element containing the toggle and text
* @csspart switch - The switch element
* @csspart dot - The dot element inside the switch
* @csspart text - The text element
* @csspart icon - The icon element when an icon is used
* @csspart caption - The caption element
*
* @cssproperty --text-color - Controls the text color
* @cssproperty --border-color - Controls the border color of the toggle
* @cssproperty --switch-bg - Controls the background color of the switch
* @cssproperty --switch-bg-hover - Controls the background color when hovered
* @cssproperty --switch-bg-active - Controls the background color when pressed
* @cssproperty --dot-bg - Controls the background color of the dot
* @cssproperty --dot-text - Controls the text color of the icon in the dot
*
* @event plus-change - Emitted when the toggle state changes
* @event plus-input - Emitted when the toggle state changes (for input event compatibility)
* @event plus-focus - Emitted when the toggle gains focus
* @event plus-blur - Emitted when the toggle loses focus
* @event plus-invalid - Emitted when the toggle validation fails
*
* @example
* ```html
* Enable dark mode
* ```
*/
export declare class PlusToggle extends Tailwind {
static formAssociated: boolean;
private internals;
static styles: import("lit").CSSResult[];
input: HTMLInputElement;
private hasFocus;
private validationMessage;
name: string;
value: string;
checked: boolean;
size: 'sm' | 'md' | 'lg';
label?: string;
caption?: string;
text?: string;
textPosition: 'left' | 'right';
toggleIcon?: string;
toggleActiveIcon?: string;
toggleInActiveIcon?: string;
error: boolean;
errorMessage: string;
disabled: boolean;
readonly: boolean;
required: boolean;
fullWidth: boolean;
animation: 'default' | 'bounce' | 'smooth';
customAriaLabel?: string;
constructor();
/**
* Checks the validity of the toggle input
* @returns True if the toggle is valid, false otherwise
*/
checkValidity(): boolean;
/**
* Reports the validity of the toggle input
* @returns True if the toggle is valid, false otherwise
*/
reportValidity(): boolean;
/**
* Sets a custom validity message for the toggle
* @param message The custom validity message
*/
setCustomValidity(message: string): void;
private setFormValue;
updated(changedProperties: Map | PropertyValues): void;
formResetCallback(): void;
formDisabledCallback(disabled: boolean): void;
private handleBlur;
private handleFocus;
/**
* Gets the validation message for the toggle
* @returns {string} The validation message
* @private
*/
private getValidationMessage;
/**
* Validates the toggle input
* @private
*/
private validate;
/**
* Called when the input is invalid
* @param {Event} event The event object
* @private
*/
private handleInvalid;
private handleChange;
private handleControlClick;
click(): void;
focus(options?: FocusOptions): void;
blur(): void;
getToggleIcon(): import("lit-html").TemplateResult<1> | "";
render(): import("lit-html").TemplateResult<1>;
}
//# sourceMappingURL=toggle.d.ts.map