import { Box } from "../../util/box.js"; import type { PropType, Ref } from 'vue'; import type { Anchor } from "../../util/index.js"; export interface LocationStrategyData { contentEl: Ref; target: Ref; isActive: Ref; isRtl: Ref; } export type LocationStrategyFunction = (data: LocationStrategyData, props: StrategyProps, contentStyles: Ref>) => undefined | { updateLocation: (e?: Event) => void; }; declare const locationStrategies: { static: typeof staticLocationStrategy; connected: typeof connectedLocationStrategy; }; export interface StrategyProps { locationStrategy: keyof typeof locationStrategies | LocationStrategyFunction; location: Anchor; origin: Anchor | 'auto' | 'overlap'; offset?: number | string | number[]; maxHeight?: number | string; maxWidth?: number | string; minHeight?: number | string; minWidth?: number | string; } export declare const makeLocationStrategyProps: (defaults?: Defaults | undefined) => { locationStrategy: unknown extends Defaults["locationStrategy"] ? { type: PropType; default: string; validator: (val: any) => boolean; } : Omit<{ type: PropType; default: string; validator: (val: any) => boolean; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["locationStrategy"] ? "connected" | "static" | LocationStrategyFunction : NonNullable<"connected" | "static" | LocationStrategyFunction> | Defaults["locationStrategy"]; }; location: unknown extends Defaults["location"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["location"] ? Anchor : NonNullable | Defaults["location"]; }; origin: unknown extends Defaults["origin"] ? { type: PropType; default: string; } : Omit<{ type: PropType; default: string; }, "type" | "default"> & { type: PropType; default: unknown extends Defaults["origin"] ? "auto" | Anchor | "overlap" : NonNullable<"auto" | Anchor | "overlap"> | Defaults["origin"]; }; offset: unknown extends Defaults["offset"] ? PropType : { type: PropType; default: unknown extends Defaults["offset"] ? string | number | number[] | undefined : NonNullable | Defaults["offset"]; }; }; export declare function useLocationStrategies(props: StrategyProps, data: LocationStrategyData): { contentStyles: Ref<{}, {}>; updateLocation: Ref<((e: Event) => void) | undefined, ((e: Event) => void) | undefined>; }; declare function staticLocationStrategy(): void; declare function connectedLocationStrategy(data: LocationStrategyData, props: StrategyProps, contentStyles: Ref>): { updateLocation: () => { available: { x: number; y: number; }; contentBox: Box; flipped: { x: boolean; y: boolean; }; } | undefined; };