import type { DetectOverflowOptions } from '../detect-overflow';
import type { Coords } from '../../utils';
import type { Derivable, Middleware, MiddlewareState } from '../types';
export declare type ShiftOptions = Partial<DetectOverflowOptions & {
    /**
     * @default true
     */
    mainAxis: boolean;
    /**
     * @default false
     */
    crossAxis: boolean;
    limiter: {
        fn: (state: MiddlewareState) => Coords;
        options?: any;
    };
}>;
export declare const shift: (options?: ShiftOptions | Derivable<ShiftOptions>) => Middleware;
declare type LimitShiftOffset = number | Partial<{
    mainAxis: number;
    crossAxis: number;
}>;
export declare type LimitShiftOptions = Partial<{
    offset: LimitShiftOffset | Derivable<LimitShiftOffset>;
    mainAxis: boolean;
    crossAxis: boolean;
}>;
export declare const limitShift: (options?: LimitShiftOptions | Derivable<LimitShiftOptions>) => {
    options: any;
    fn: (state: MiddlewareState) => Coords;
};
export {};
