import { RefObject } from '@mui/x-internals/types';
import { EventListenerOptions } from '@mui/x-internals/EventManager';
import { GridEventListener, GridEvents } from '../../models/events';
import { CleanupTracking } from '../../utils/cleanupTracking/CleanupTracking';
import type { GridApiCommon } from '../../models';
/**
 * Signal to the underlying logic what version of the public component API
 * of the Data Grid is exposed.
 */
declare enum GridSignature {
    DataGrid = "DataGrid",
    DataGridPro = "DataGridPro",
    DataGridPremium = "DataGridPremium"
}
interface RegistryContainer {
    registry: CleanupTracking | null;
}
export declare function createUseGridApiEventHandler(registryContainer: RegistryContainer): <Api extends GridApiCommon, E extends GridEvents>(apiRef: RefObject<Api>, eventName: E, handler?: GridEventListener<E>, options?: EventListenerOptions) => void;
export declare const unstable_resetCleanupTracking: () => void;
export declare const useGridApiEventHandler: <Api extends GridApiCommon, E extends GridEvents>(apiRef: RefObject<Api>, eventName: E, handler?: GridEventListener<E>, options?: EventListenerOptions) => void;
export declare function useGridApiOptionHandler<Api extends GridApiCommon, E extends GridEvents>(apiRef: RefObject<Api>, eventName: E, handler?: GridEventListener<E>): void;
export { GridSignature };
