import { Label } from '../dynamic-label/label.types';
/**
 * The Switch component is a fundamental element in UI design that serves as a toggle switch
 * to control the state of a specific setting or option in an application or website.
 * The two distinct positions of the Switch are visually indicative of the two states:
 * ON and OFF; making it easy for users to understand the current state of the controlled feature.
 *
 * The Switch component is widely used in user interfaces to enable users to
 * quickly and intuitively change binary settings.
 *
 * :::important
 * Checkboxes are sometimes used interchangeably with switches in user interfaces.
 * But there is an important difference between the two! Please read our guidelines about
 * [Switch vs. Checkbox](#/DesignGuidelines/switch-vs-checkbox.md/).
 *
 * @exampleComponent limel-example-switch-basic
 * @exampleComponent limel-example-switch-helper-text
 * @exampleComponent limel-example-switch-readonly
 */
export declare class Switch {
    /**
     * Label to display next to the switch
     */
    label: string;
    /**
     * Disables the switch when `true`,
     * and visually shows that the switch is editable but disabled.
     * This tells the users that if certain requirements are met,
     * the switch may become interactable.
     */
    disabled: boolean;
    /**
     * Disables the switch when `true`. This visualizes the switch slightly differently.
     * But shows no visual sign indicating that the switch is disabled
     * or can ever become interactable.
     */
    readonly: boolean;
    /**
     * Set to `true` to indicate that the current value is invalid.
     */
    invalid: boolean;
    /**
     * The value of the switch
     */
    value: boolean;
    /**
     * Optional helper text to display below the switch
     */
    helperText: string;
    /**
     * The labels to use to clarify what kind of data is being visualized,
     * when the component is `readonly`.
     */
    readonlyLabels?: Array<Label<boolean>>;
    /**
     * Emitted when the value has changed
     */
    private change;
    private host;
    private helperTextId;
    private fieldId;
    componentWillLoad(): void;
    disconnectedCallback(): void;
    render(): any;
    private renderReadonly;
    private renderInteractive;
    private renderHelperLine;
    private get ariaDescribedBy();
    private hasHelperText;
    private handleClick;
}
//# sourceMappingURL=switch.d.ts.map