import { EffectScope, PropType, Ref } from 'vue';
export interface IScrollStrategyData {
    root: Ref<HTMLElement | undefined>;
    contentEl: Ref<HTMLElement | undefined>;
    targetEl: Ref<HTMLElement | undefined>;
    isActive: Ref<boolean>;
    updateLocation: Ref<((event: Event) => void) | undefined>;
}
type TScrollStrategyFn = (data: IScrollStrategyData, props: IScrollStrategyProps, scope: EffectScope) => void;
declare const scrollStrategies: {
    none: null;
    close: typeof closeScrollStrategy;
    block: typeof blockScrollStrategy;
    reposition: typeof repositionScrollStrategy;
};
export interface IScrollStrategyProps {
    scrollStrategy: keyof typeof scrollStrategies | TScrollStrategyFn;
    contained: boolean | undefined;
}
export declare const makeScrollStrategyProps: <Defaults extends {
    scrollStrategy?: unknown;
} = {}>(defaults?: Defaults | undefined) => import('../../../utils').AppendDefault<{
    scrollStrategy: {
        type: PropType<keyof typeof scrollStrategies | TScrollStrategyFn>;
        default: string;
        validator: (value: any) => boolean;
    };
}, Defaults>;
export declare function useScrollStrategies(props: IScrollStrategyProps, data: IScrollStrategyData): void;
declare function closeScrollStrategy(data: IScrollStrategyData): void;
declare function blockScrollStrategy(data: IScrollStrategyData, props: IScrollStrategyProps): void;
declare function repositionScrollStrategy(data: IScrollStrategyData, props: IScrollStrategyProps, scope: EffectScope): void;
export {};
