import type { ReactNode } from "react";
import React from "react";
interface FeatureSwitchProps {
    readonly children?: ReactNode | ReactNode[];
    /**
     * Feature description. This supports basic markdown node types such as
     * `_italic_`, `**bold**`, and `[link name](url)`
     */
    readonly description?: string;
    /**
     * Determines if the switch is disabled
     *
     * @default false
     */
    readonly disabled?: boolean;
    /**
     * Defines if the feature should be ON or OFF by default.
     *
     * @default false
     */
    readonly enabled?: boolean;
    /**
     * Defines if the links in the description should open in a new tab.
     *
     * @default false
     */
    readonly externalLink?: boolean;
    /**
     * Feature title.
     */
    readonly title?: string;
    /**
     * Determines if a save indicator should show up when the `enabled` prop
     * changes. This means, it would only work for controlled components.
     *
     * @default false
     */
    readonly hasSaveIndicator?: boolean;
    /**
     * Callback when interacting with the switch.
     *
     * @param newValue
     */
    onSwitch?(newValue: boolean): void;
    /**
     * Callback when clicking with the edit button. This also determines if the
     * edit button should show up in the UI.
     */
    onEdit?(): void;
}
export declare function FeatureSwitch({ children, description, disabled, enabled, externalLink, onEdit, onSwitch, hasSaveIndicator, title, }: FeatureSwitchProps): React.JSX.Element;
export {};
