import type { EffectScope, PropType, Ref } from 'vue'; export interface ScrollStrategyData { root: Ref; contentEl: Ref; targetEl: Ref; target: Ref; isActive: Ref; updateLocation: Ref<((e: Event) => void) | undefined>; } export type ScrollStrategyFunction = (data: ScrollStrategyData, props: StrategyProps, scope: EffectScope) => void; declare const scrollStrategies: { none: null; close: typeof closeScrollStrategy; block: typeof blockScrollStrategy; reposition: typeof repositionScrollStrategy; }; export interface StrategyProps { scrollStrategy: keyof typeof scrollStrategies | ScrollStrategyFunction; contained: boolean | undefined; } export declare const makeScrollStrategyProps: (defaults?: Defaults | undefined) => { scrollStrategy: unknown extends Defaults["scrollStrategy"] ? { type: PropType; default: string; validator: (val: any) => boolean; } : Omit<{ type: PropType; default: string; validator: (val: any) => boolean; }, "default" | "type"> & { type: PropType; default: unknown extends Defaults["scrollStrategy"] ? "block" | "close" | "none" | "reposition" | ScrollStrategyFunction : Defaults["scrollStrategy"] | NonNullable<"block" | "close" | "none" | "reposition" | ScrollStrategyFunction>; }; }; export declare function useScrollStrategies(props: StrategyProps, data: ScrollStrategyData): void; declare function closeScrollStrategy(data: ScrollStrategyData): void; declare function blockScrollStrategy(data: ScrollStrategyData, props: StrategyProps): void; declare function repositionScrollStrategy(data: ScrollStrategyData, props: StrategyProps, scope: EffectScope): void;