import React from 'react';
import type { BeforeCallback } from './DelayedCallback';
import type { TimerApi } from './Timer';
/**
 * @deprecatedSince 9
 * @deprecated Never officially documented/supported
 */
export declare type Callback = () => void;
/**
 * @deprecatedSince 9
 * @deprecated Never officially documented/supported
 */
export interface DelayedToggleConfig {
    /**
     * @since 10.19.0
     */
    beforeDisable?: BeforeCallback;
    /**
     * @since 10.19.0
     */
    beforeEnable?: BeforeCallback;
    /**
     * @since 10.19.0
     */
    disableDelay?: number;
    /**
     * @since 10.19.0
     */
    enableDelay?: number;
    /**
     * @since 10.19.0
     */
    isEnabled?: boolean;
    /**
     * @since 10.19.0
     */
    onDisable: Callback;
    /**
     * @since 10.19.0
     */
    onEnable: Callback;
    /**
     * @since 10.19.0
     */
    timer?: TimerApi;
}
/**
 * @deprecatedSince 9
 * @deprecated Never officially documented/supported
 */
export interface DelayedToggleProps extends DelayedToggleConfig {
    /**
     * @since 10.19.0
     */
    children: React.ReactNode;
}
interface DelayedToggleRenderProps extends DelayedToggleConfig {
    /**
     * @since 10.19.0
     */
    children: React.ReactElement | ((props: Api) => React.ReactElement);
}
/**
 * @deprecatedSince 9
 * @deprecated Never officially documented/supported
 */
export interface Api {
    /**
     * @since 10.19.0
     */
    disable: (event: any) => any;
    /**
     * @since 10.19.0
     */
    enable: (event: any) => any;
    /**
     * @since 10.19.0
     */
    toggle: (event: any) => any;
}
/**
 * @deprecatedSince 9
 * @deprecated Never officially documented/supported
 */
export declare function useDelayedToggle({ beforeDisable, beforeEnable, disableDelay, enableDelay, isEnabled, onDisable, onEnable, timer, }: DelayedToggleConfig): Api;
/**
 * @deprecatedSince 9
 * @deprecated Never officially documented/supported
 */
export declare const DelayedToggle: React.ForwardRefExoticComponent<DelayedToggleRenderProps & React.RefAttributes<HTMLElement>>;
/**
 * @deprecatedSince 9
 * @deprecated Never officially documented/supported
 */
export declare const initDelayedToggle: Api;
/**
 * @deprecatedSince 9
 * @deprecated Never officially documented/supported
 */
export declare const DelayedToggleContext: React.Context<Api>;
/**
 * @deprecatedSince 9
 * @deprecated Never officially documented/supported
 */
export declare function DelayedToggleProvider({ children, ...props }: DelayedToggleProps): React.JSX.Element;
/**
 * @deprecatedSince 9
 * @deprecated Never officially documented/supported
 */
export declare function useDelayedToggleContext(): Api;
export {};
