/// import { type InteractOutsideEvent } from '../../internal/actions/index.js'; import { type WithGet } from '../../internal/helpers/index.js'; import type { MeltActionReturn } from '../../internal/types.js'; import { type Readable } from 'svelte/store'; import type { ContextMenuEvents } from './events.js'; import type { CreateContextMenuProps } from './types.js'; export declare function createContextMenu(props?: CreateContextMenuProps): { ids: import("../../internal/helpers/index.js").ToWritableStores<{ menu: string; trigger: string; }>; elements: { menu: import("../../internal/helpers/index.js").MeltElement<[Readable, WithGet>, WithGet>, WithGet>], (node: HTMLElement) => MeltActionReturn, ([$isVisible, $portal, $menuId, $triggerId]: [boolean, string | HTMLElement | null | undefined, string, string]) => { readonly role: "menu"; readonly hidden: true | undefined; readonly style: string; readonly id: string; readonly 'aria-labelledby': string; readonly 'data-state': "open" | "closed"; readonly 'data-portal': "" | undefined; readonly tabindex: -1; }, string>; trigger: import("../../internal/helpers/index.js").MeltElement<[{ 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; }, WithGet>], (node: HTMLElement) => MeltActionReturn, ([$rootOpen, $triggerId]: [boolean, string]) => { readonly 'data-state': "open" | "closed"; readonly id: string; readonly style: string; readonly 'data-id': string; }, string>; overlay: import("../../internal/helpers/index.js").MeltElement<[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>; item: import("../../internal/helpers/index.js").MeltElement MeltActionReturn<"click" | "focusin" | "focusout" | "keydown" | "pointerdown" | "pointerleave" | "pointermove">, () => { role: string; tabindex: number; 'data-orientation': string; }, string>; group: import("../../internal/helpers/index.js").MeltElement>, () => (groupId: string) => { role: string; 'aria-labelledby': string; }, string>; groupLabel: import("../../internal/helpers/index.js").MeltElement>, () => (groupId: string) => { id: string; }, string>; arrow: import("../../internal/helpers/index.js").MeltElement>, import("svelte/action").Action>, ($arrowSize: number | undefined) => { 'data-arrow': boolean; style: string; }, string>; separator: import("../../internal/helpers/index.js").MeltElement<[WithGet>, WithGet>], import("svelte/action").Action>, ([$orientation, $decorative]: [import("../../internal/types.js").Orientation, boolean]) => { role: string; 'aria-orientation': "vertical" | undefined; 'aria-hidden': boolean; 'data-orientation': import("../../internal/types.js").Orientation; }, "separator">; }; states: { open: WithGet>; }; builders: { createCheckboxItem: (props?: import("../menu/types.js")._CheckboxItemProps | undefined) => { elements: { checkboxItem: import("../../internal/helpers/index.js").MeltElement<[{ update: (updater: import("svelte/store").Updater, sideEffect?: ((newValue: boolean | "indeterminate") => void) | undefined) => void; set: (this: void, value: boolean | "indeterminate") => void; subscribe(this: void, run: import("svelte/store").Subscriber, invalidate?: import("svelte/store").Invalidator | undefined): import("svelte/store").Unsubscriber; get: () => boolean | "indeterminate"; destroy?: (() => void) | undefined; }, import("svelte/store").Writable], (node: HTMLElement) => MeltActionReturn<"click" | "focusin" | "focusout" | "keydown" | "pointerdown" | "pointerleave" | "pointermove">, ([$checked, $disabled]: [boolean | "indeterminate", boolean]) => { readonly role: "menuitemcheckbox"; readonly tabindex: -1; readonly 'data-orientation': "vertical"; readonly 'aria-checked': "true" | "mixed" | "false"; readonly 'data-disabled': true | undefined; readonly 'data-state': "indeterminate" | "checked" | "unchecked"; }, string>; }; states: { checked: { update: (updater: import("svelte/store").Updater, sideEffect?: ((newValue: boolean | "indeterminate") => void) | undefined) => void; set: (this: void, value: boolean | "indeterminate") => void; subscribe(this: void, run: import("svelte/store").Subscriber, invalidate?: import("svelte/store").Invalidator | undefined): import("svelte/store").Unsubscriber; get: () => boolean | "indeterminate"; destroy?: (() => void) | undefined; }; }; helpers: { isChecked: Readable; isIndeterminate: Readable; }; options: { disabled: import("svelte/store").Writable; }; }; createSubmenu: (args?: import("../menu/types.js")._CreateSubmenuProps | undefined) => { ids: import("../../internal/helpers/index.js").ToWritableStores<{ menu: string; trigger: string; }>; elements: { subTrigger: import("../../internal/helpers/index.js").MeltElement<[{ 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; }, WithGet>, WithGet>, WithGet>], (node: HTMLElement) => MeltActionReturn<"click" | "focusin" | "focusout" | "keydown" | "pointerleave" | "pointermove">, ([$subOpen, $disabled, $subMenuId, $subTriggerId]: [boolean, boolean, string, string]) => { readonly role: "menuitem"; readonly id: string; readonly tabindex: -1; readonly 'aria-controls': string; readonly 'aria-expanded': boolean; readonly 'data-state': "open" | "closed"; readonly 'data-disabled': true | undefined; readonly 'aria-haspopop': "menu"; }, string>; subMenu: import("../../internal/helpers/index.js").MeltElement<[Readable, WithGet>, WithGet>], (node: HTMLElement) => MeltActionReturn<"focusout" | "keydown" | "pointermove">, ([$subIsVisible, $subMenuId, $subTriggerId]: [boolean, string, string]) => { readonly role: "menu"; readonly hidden: true | undefined; readonly style: string; readonly id: string; readonly 'aria-labelledby': string; readonly 'data-state': "open" | "closed"; readonly 'data-id': string; readonly tabindex: -1; }, string>; subArrow: import("../../internal/helpers/index.js").MeltElement>, import("svelte/action").Action>, ($arrowSize: number) => { 'data-arrow': boolean; style: string; }, string>; }; states: { subOpen: { 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; ids?: Partial<{ menu: string; trigger: string; }> | undefined; onOpenChange?: import("../../internal/helpers/index.js").ChangeFn | undefined; positioning: import("../../internal/actions/index.js").FloatingConfig | { placement: "right-start"; gutter: number; }; arrowSize: number; disabled: boolean; preventScroll: true; closeOnEscape: true; closeOnOutsideClick: true; portal: undefined; loop: false; dir: "ltr"; defaultOpen: false; typeahead: true; closeOnItemClick: true; onOutsideClick: undefined; }, "ids">>; }; createMenuRadioGroup: (args?: import("../menu/types.js")._CreateRadioGroupProps) => { elements: { radioGroup: import("../../internal/helpers/index.js").MeltElement>, () => { role: string; }, string>; radioItem: import("../../internal/helpers/index.js").MeltElement<[{ update: (updater: import("svelte/store").Updater, sideEffect?: ((newValue: string | null) => void) | undefined) => void; set: (this: void, value: string | null) => void; subscribe(this: void, run: import("svelte/store").Subscriber, invalidate?: import("svelte/store").Invalidator | undefined): import("svelte/store").Unsubscriber; get: () => string | null; destroy?: (() => void) | undefined; }], (node: HTMLElement) => MeltActionReturn<"click" | "focusin" | "focusout" | "keydown" | "pointerdown" | "pointerleave" | "pointermove">, ([$value]: [string | null]) => (itemProps: import("../menu/types.js")._RadioItemProps) => { disabled: boolean; role: string; 'data-state': string; 'aria-checked': boolean; 'data-disabled': boolean | undefined; 'data-value': string; 'data-orientation': string; tabindex: number; }, string>; }; states: { value: { update: (updater: import("svelte/store").Updater, sideEffect?: ((newValue: string | null) => void) | undefined) => void; set: (this: void, value: string | null) => void; subscribe(this: void, run: import("svelte/store").Subscriber, invalidate?: import("svelte/store").Invalidator | undefined): import("svelte/store").Unsubscriber; get: () => string | null; destroy?: (() => void) | undefined; }; }; helpers: { isChecked: Readable<(itemValue: string) => boolean>; }; }; }; options: { positioning: WithGet>; arrowSize: WithGet>; preventScroll: WithGet>; loop: WithGet>; dir: WithGet>; closeOnEscape: WithGet>; closeOnOutsideClick: WithGet>; portal: WithGet>; forceVisible: WithGet>; typeahead: WithGet>; closeFocus: WithGet>; disableFocusFirstItem: WithGet>; closeOnItemClick: WithGet>; onOutsideClick: WithGet void) | undefined>>; }; }; export declare function isLeftClick(event: InteractOutsideEvent): boolean;