import type { Rect } from './dom';
import type { Placement } from './types';
declare type Validator = (container: Rect, target: Rect, overlay: Rect) => boolean;
declare type Updater = (target: Rect, overlay: Rect) => object;
declare type ValidatorMap = {
    [s: string]: Validator;
};
declare type UpdaterMap = {
    [s: string]: Updater;
};
interface ComponentUpdater {
    validator: ValidatorMap;
    updater: UpdaterMap;
}
interface Config {
    container: Rect;
    target: Rect;
    overlay: Rect;
    canFlip?: boolean;
    placement: Placement;
}
export declare const Alignment: ComponentUpdater;
export declare const getAlignmentPosition: ({ container, target, overlay, placement: current, canFlip, }: Config) => {
    placement: Placement;
};
export declare const getEdgePosition: ({ container, target, overlay, placement: current, canFlip, }: Config) => {
    placement: Placement;
};
export declare const getFlyoutAlignmentPosition: ({ container, target, overlay, placement: current, canFlip, }: Config) => {
    placement: Placement;
};
export declare const getFlyoutEdgePosition: ({ container, target, overlay, placement: current, canFlip, }: Config) => {
    placement: Placement;
};
export declare const padding: (pad: number | undefined, shape: Rect) => {
    width: number;
    height: number;
    top: number;
    bottom: number;
    left: number;
    right: number;
    x?: number | undefined;
    y?: number | undefined;
};
export declare function getAnchorPosition(placement: Placement, pad: number | undefined, container: Rect | undefined, target: Rect, overlay: Rect, canFlip: boolean | undefined, isFlyout: boolean): any;
export {};
