import type { ExtractPropTypes, PropType, Ref } from 'vue';
export interface ScrollStrategyData {
    root: Ref<HTMLElement | undefined>;
    contentEl: Ref<HTMLElement | undefined>;
    activatorEl: Ref<HTMLElement | undefined>;
    isActive: Ref<boolean>;
    updatePosition: Ref<((e: Event) => void) | undefined>;
}
export declare const makeScrollStrategyProps: <Defaults extends {
    scrollStrategy?: unknown;
} = {}>(defaults?: Defaults | undefined) => {
    scrollStrategy: unknown extends Defaults["scrollStrategy"] ? {
        type: PropType<boolean | "close" | "none" | "block" | "reposition" | ((data: ScrollStrategyData, name: string) => void)>;
        default: string;
        validator: (val: any) => boolean;
    } : Omit<{
        type: PropType<boolean | "close" | "none" | "block" | "reposition" | ((data: ScrollStrategyData, name: string) => void)>;
        default: string;
        validator: (val: any) => boolean;
    }, "type" | "default"> & {
        type: PropType<unknown extends Defaults["scrollStrategy"] ? boolean | "close" | "none" | "block" | "reposition" | ((data: ScrollStrategyData, name: string) => void) : NonNullable<boolean | "close" | "none" | "block" | "reposition" | ((data: ScrollStrategyData, name: string) => void)> | Defaults["scrollStrategy"]>;
        default: unknown extends Defaults["scrollStrategy"] ? boolean | "close" | "none" | "block" | "reposition" | ((data: ScrollStrategyData, name: string) => void) : NonNullable<boolean | "close" | "none" | "block" | "reposition" | ((data: ScrollStrategyData, name: string) => void)> | Defaults["scrollStrategy"];
    };
};
export declare function useScrollStrategy(props: ExtractPropTypes<ReturnType<typeof makeScrollStrategyProps>>, data: ScrollStrategyData, name?: string): void;
