import { type Writable } from 'svelte/store';
type Positions = 'right' | 'bottom' | 'left' | 'top';
export declare class Popover {
    cords: Writable<number[] | undefined>;
    show: Writable<boolean>;
    position: Writable<'left' | 'top' | 'bottom' | 'right'>;
    trigger: Writable<{
        node: HTMLElement;
        event: 'hover' | 'click';
    }>;
    level: Writable<{
        index: number;
        children: Popover[];
    }>;
    parent: Popover | null;
    root?: HTMLElement;
    dropdown?: HTMLElement;
    document?: Document;
    constructor({ show, position, cords, }?: {
        show?: boolean;
        position?: Positions;
        cords?: number[];
    });
    static getParent(): Popover | null;
    hasChildren(): boolean;
    get stores(): {
        show: Writable<boolean>;
        position: Writable<"top" | "bottom" | "left" | "right">;
        trigger: Writable<{
            node: HTMLElement;
            event: "hover" | "click";
        }>;
        cords: Writable<number[] | undefined>;
    };
    static get self(): Popover;
    setTrigger(node: HTMLElement, event: 'hover' | 'click'): void;
    close(): void;
    closeCascade(): void;
    closeChildren(controller: Popover): void;
    closeRecursive: (controller: Popover) => void;
    open(): void;
    spawn(x: number, y: number): void;
}
export {};
