///
import { type InteractOutsideEvent } from '../../internal/actions/index.js';
import type { MeltActionReturn } from '../../internal/types.js';
import type { PopoverEvents } from './events.js';
import type { CreatePopoverProps } from './types.js';
export declare const popoverIdParts: readonly ["trigger", "content"];
export type PopoverIdParts = typeof popoverIdParts;
export declare function createPopover(args?: CreatePopoverProps): {
ids: import("../../internal/helpers/index.js").ToWritableStores<{
content: string;
trigger: string;
}>;
elements: {
trigger: import("../../internal/helpers/index.js").MeltElement<[import("svelte/store").Readable, import("../../internal/helpers/index.js").WithGet>, import("../../internal/helpers/index.js").WithGet>], (node: HTMLElement) => MeltActionReturn, ([$isVisible, $contentId, $triggerId]: [boolean, string, string]) => {
readonly role: "button";
readonly 'aria-haspopup': "dialog";
readonly 'aria-expanded': "true" | "false";
readonly 'data-state': "open" | "closed";
readonly 'aria-controls': string;
readonly id: string;
}, string>;
content: import("../../internal/helpers/index.js").MeltElement<[import("svelte/store").Readable, {
update: (updater: import("svelte/store").Updater, sideEffect?: ((newValue: boolean) => void) | undefined) => void;
set: (this: void, value: boolean) => void;
subscribe(this: void, run: import("svelte/store").Subscriber, invalidate?: import("svelte/store").Invalidator | undefined): import("svelte/store").Unsubscriber;
get: () => boolean;
destroy?: (() => void) | undefined;
}, import("../../internal/helpers/index.js").WithGet>, import("../../internal/helpers/index.js").WithGet>, import("../../internal/helpers/index.js").WithGet>], (node: HTMLElement) => {
destroy(): void;
}, ([$isVisible, $open, $activeTrigger, $portal, $contentId]: [boolean, boolean, HTMLElement | null, string | HTMLElement | null, string]) => {
readonly hidden: true | undefined;
readonly tabindex: -1;
readonly style: string | undefined;
readonly id: string;
readonly 'data-state': "open" | "closed";
readonly 'data-portal': "" | undefined;
}, string>;
arrow: import("../../internal/helpers/index.js").MeltElement>, import("svelte/action").Action>, ($arrowSize: number) => {
readonly 'data-arrow': true;
readonly style: string;
}, string>;
close: import("../../internal/helpers/index.js").MeltElement MeltActionReturn, () => {
readonly type: "button";
}, string>;
overlay: import("../../internal/helpers/index.js").MeltElement<[import("svelte/store").Readable], (node: HTMLElement) => {
destroy(): void;
}, ([$isVisible]: [boolean]) => {
readonly hidden: true | undefined;
readonly tabindex: -1;
readonly style: string;
readonly 'aria-hidden': "true";
readonly 'data-state': "open" | "closed";
}, string>;
};
states: {
open: {
update: (updater: import("svelte/store").Updater, sideEffect?: ((newValue: boolean) => void) | undefined) => void;
set: (this: void, value: boolean) => void;
subscribe(this: void, run: import("svelte/store").Subscriber, invalidate?: import("svelte/store").Invalidator | undefined): import("svelte/store").Unsubscriber;
get: () => boolean;
destroy?: (() => void) | undefined;
};
};
options: import("../../internal/helpers/index.js").ToWritableStores | undefined;
onOpenChange: import("../../internal/helpers/index.js").ChangeFn | undefined;
disableFocusTrap: boolean;
escapeBehavior: import("../../internal/actions/index.js").EscapeBehaviorType;
closeOnOutsideClick: boolean;
onOutsideClick: ((event: InteractOutsideEvent) => void) | undefined;
preventTextSelectionOverflow: boolean;
preventScroll: boolean;
portal: string | HTMLElement | null;
forceVisible: boolean;
openFocus: import("../../internal/helpers/index.js").FocusProp | undefined;
closeFocus: import("../../internal/helpers/index.js").FocusProp | undefined;
ids?: Partial<{
content: string;
trigger: string;
}> | undefined;
}, "open" | "ids">>;
};