import { ICheckable, ICheckableEvents } from '../../../Behaviors/Checkable';
import { ButtonBaseElement } from '../Abstracts/ButtonBaseElement';
import type { IToggleButtonElementProps } from './IToggleButtonElementProps';
declare const ToggleButtonElement_base: (abstract new (...args: Array<any>) => import("../../../../Controls/Behaviors/Themeable").IThemeableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Reversible").IReversibleProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Orientable").IOrientableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/ContentAlignable").IContentAlignableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Fitable").IFitableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Busyable").IBusyableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Checkable").ICheckableProps & ICheckableEvents & ICheckable) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Labelable").ILabelableProps) & (abstract new (...args: Array<any>) => import("../../../Behaviors/Iconable").IIconableProps) & typeof ButtonBaseElement & import("../../../../Controls/Behaviors/Themeable").IThemeableCtor;
/**
 * ToggleButton - An interactive button component that maintains a checked/unchecked state for binary choices.
 *
 * Provides toggle functionality with visual state feedback, allowing users to switch between two
 * states (on/off, enabled/disabled, selected/unselected). Features persistent state management,
 * visual state indicators, and keyboard accessibility for binary preference controls.
 *
 * @name ToggleButtonElement
 * @element mosaik-toggle-button
 * @category Buttons
 *
 * @slot label - Text label content area for button identification
 * @slot icon - Icon content area for visual state representation
 * @slot overlay - Overlay content area for badges, notifications, or state indicators
 *
 * @csspart button - Main toggle button element container
 * @csspart focusRing - Focus ring indicator for accessibility
 * @csspart ripple - Ripple effect animation container
 * @csspart icon - Icon content styling container
 * @csspart label - Text label styling container
 * @csspart progressRing - Loading state progress indicator
 *
 * @cssprop --toggle-button-font-family - Font family for button text content
 * @cssprop --toggle-button-font-size - Font size for button text
 * @cssprop --toggle-button-font-line-height - Line height for button text
 * @cssprop --toggle-button-font-weight - Font weight for button text
 * @cssprop --toggle-button-font-letter-spacing - Letter spacing for button text
 * @cssprop --toggle-button-font-text-decoration - Text decoration for button text
 * @cssprop --toggle-button-font-text-transform - Text transform for button text
 * @cssprop --toggle-button-padding-top - Top padding for button content
 * @cssprop --toggle-button-padding-right - Right padding for button content
 * @cssprop --toggle-button-padding-bottom - Bottom padding for button content
 * @cssprop --toggle-button-padding-left - Left padding for button content
 * @cssprop --toggle-button-gap - Gap between icon and label elements
 * @cssprop --toggle-button-background-checked - Background color when toggled on
 * @cssprop --toggle-button-background-unchecked - Background color when toggled off
 * @cssprop --toggle-button-border-color-checked - Border color when toggled on
 * @cssprop --toggle-button-border-color-unchecked - Border color when toggled off
 *
 * @fires change - Dispatched when the toggle state changes
 * @fires checked - Dispatched when the button becomes checked
 * @fires unchecked - Dispatched when the button becomes unchecked
 * @fires click - Dispatched when the button is clicked
 *
 * @dependency RippleElement - For interactive ripple effects on user interaction
 * @dependency StackElement - For layout management of icon and label
 * @dependency IconElement - For displaying state icons and visual indicators
 * @dependency FocusRingElement - For accessibility focus indicators
 * @dependency TextElement - For rendering text labels
 * @dependency ProgressRingElement - For loading state visualization
 *
 * @example
 * ```html
 * <!-- Simple toggle button -->
 * <mosaik-toggle-button onchange="handleToggle(event)">
 *   <mosaik-icon slot="icon" data="star"></mosaik-icon>
 *   <mosaik-text slot="label">Favorite</mosaik-text>
 * </mosaik-toggle-button>
 *
 * <!-- Settings toggle button -->
 * <mosaik-toggle-button checked="true">
 *   <mosaik-icon slot="icon" data="bell"></mosaik-icon>
 *   <mosaik-text slot="label">Notifications</mosaik-text>
 * </mosaik-toggle-button>
 *
 * <!-- Feature toggle button -->
 * <mosaik-toggle-button appearance="soft">
 *   <mosaik-icon slot="icon" data="eye"></mosaik-icon>
 *   <mosaik-text slot="label">Show Preview</mosaik-text>
 * </mosaik-toggle-button>
 *
 * <!-- Toggle button group -->
 * <div class="toggle-group">
 *   <mosaik-toggle-button name="view" value="list">
 *     <mosaik-icon slot="icon" data="list"></mosaik-icon>
 *     <mosaik-text slot="label">List View</mosaik-text>
 *   </mosaik-toggle-button>
 *   <mosaik-toggle-button name="view" value="grid">
 *     <mosaik-icon slot="icon" data="grid"></mosaik-icon>
 *     <mosaik-text slot="label">Grid View</mosaik-text>
 *   </mosaik-toggle-button>
 * </div>
 *
 * <!-- Busy toggle button -->
 * <mosaik-toggle-button busy="true">
 *   <mosaik-icon slot="icon" data="sync"></mosaik-icon>
 *   <mosaik-text slot="label">Auto Sync</mosaik-text>
 * </mosaik-toggle-button>
 * ```
 *
 * @public
 */
export declare class ToggleButtonElement extends ToggleButtonElement_base implements IToggleButtonElementProps, ICheckable, ICheckableEvents {
    /**
     * @public
     */
    constructor();
    /**
     * Returns the `{@link is}` property.
     * The `{@link is}` property represents natural name of this element.
     *
     * @public
     * @static
     * @readonly
     */
    static get is(): string;
    /**
     * Resets the element to its initial state.
     *
     * @public
     */
    reset(): void;
}
/**
 * @public
 */
export declare namespace ToggleButtonElement {
    type Props = IToggleButtonElementProps;
}
/**
 * @public
 */
declare global {
    interface HTMLElementTagNameMap {
        'mosaik-toggle-button': ToggleButtonElement;
    }
}
export {};
//# sourceMappingURL=ToggleButtonElement.d.ts.map