export type TPromisable<T> = T | Promise<T>;
/**
 * getDir12Style
 * Notice 1 : N, S, E, W are available when self is not falsy
 */
export declare enum EDir4 {
    E = "east",
    N = "north",
    S = "south",
    W = "west"
}
export declare enum EDir12 {
    E = "east",
    EN = "east-north",
    ES = "east-south",
    N = "north",
    NE = "north-east",
    NW = "north-west",
    S = "south",
    SE = "south-east",
    SW = "south-west",
    W = "west",
    WN = "west-north",
    WS = "west-south"
}
interface IPosition {
    bottom?: number;
    left?: number;
    right?: number;
    top?: number;
}
export interface IOffset {
    x?: number;
    y?: number;
}
export declare function setDir12Style(anchorRef: React.RefObject<HTMLElement | null>, selfRef: React.RefObject<HTMLElement | null>, dir: EDir12, offset?: IOffset): void;
export declare function setDir12StyleElem(anchorElem: HTMLElement | null, selfRef: React.RefObject<HTMLElement | null>, dir: EDir12, offset?: IOffset): IPosition | undefined;
export type TActionRef<T> = {
    current: T | null | undefined;
};
export type TIdx = number | string;
export interface IACalledEvent {
    preventDefault: boolean;
}
export interface IAEvent {
    preventDefault: () => void;
}
export declare function createEvent(): {
    event: IACalledEvent;
    e: IAEvent;
};
export {};
