import type { Ref } from 'vue';
import type { InitializationTarget } from 'overlayscrollbars';
import type { OverlayScrollbarsComponentProps, OverlayScrollbarsComponentRef } from './OverlayScrollbarsComponent.types';
export interface UseOverlayScrollbarsParams {
    /** OverlayScrollbars options. */
    options?: OverlayScrollbarsComponentProps['options'] | Ref<OverlayScrollbarsComponentProps['options']>;
    /** OverlayScrollbars events. */
    events?: OverlayScrollbarsComponentProps['events'] | Ref<OverlayScrollbarsComponentProps['events']>;
    /** Whether to defer the initialization to a point in time when the browser is idle. (or to the next frame if `window.requestIdleCallback` is not supported) */
    defer?: OverlayScrollbarsComponentProps['defer'] | Ref<OverlayScrollbarsComponentProps['defer']>;
}
export type UseOverlayScrollbarsInitialization = (target: InitializationTarget) => void;
export type UseOverlayScrollbarsInstance = () => ReturnType<OverlayScrollbarsComponentRef['osInstance']>;
/**
 * Composable for advanced usage of OverlayScrollbars. (When the OverlayScrollbarsComponent is not enough)
 * @param params Parameters for customization.
 * @returns A tuple with two values:
 * The first value is the initialization function, it takes one argument which is the `InitializationTarget` and returns the OverlayScrollbars instance.
 * The second value is a function which returns the current OverlayScrollbars instance or `null` if not initialized.
 */
export declare const useOverlayScrollbars: (params?: UseOverlayScrollbarsParams | Ref<UseOverlayScrollbarsParams | undefined>) => [UseOverlayScrollbarsInitialization, UseOverlayScrollbarsInstance];
