///
import { type WithGet } from '../../internal/helpers/withGet.js';
import type { MeltActionReturn } from '../../internal/types.js';
import { type Readable } from 'svelte/store';
import type { LinkPreviewEvents } from './events.js';
import type { CreateLinkPreviewProps } from './types.js';
export declare const linkPreviewIdParts: readonly ["trigger", "content"];
export type LinkPreviewIdParts = typeof linkPreviewIdParts;
export declare function createLinkPreview(props?: CreateLinkPreviewProps): {
ids: import("../../internal/helpers/index.js").ToWritableStores<{
content: string;
trigger: string;
}>;
elements: {
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>, WithGet>], (node: HTMLElement) => MeltActionReturn, ([$open, $triggerId, $contentId]: [boolean, string, string]) => {
role: "button";
'aria-haspopup': "dialog";
'aria-expanded': boolean;
'data-state': string;
'aria-controls': string;
id: string;
}, string>;
content: import("../../internal/helpers/index.js").MeltElement<[Readable, WithGet>, WithGet>], (node: HTMLElement) => MeltActionReturn, ([$isVisible, $portal, $contentId]: [boolean, string | HTMLElement | null | undefined, string]) => {
hidden: boolean | undefined;
tabindex: number;
style: string;
id: string;
'data-state': string;
'data-portal': string | undefined;
}, string>;
arrow: import("../../internal/helpers/index.js").MeltElement>, import("svelte/action").Action>, ($arrowSize: number) => {
'data-arrow': boolean;
style: string;
}, 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;
openDelay: number;
closeDelay: number;
closeOnOutsideClick: boolean;
onOutsideClick: ((event: import("../../internal/actions/index.js").InteractOutsideEvent) => void) | undefined;
closeOnEscape: boolean;
arrowSize: number;
forceVisible: boolean;
portal: string | HTMLElement | null | undefined;
ids?: Partial<{
content: string;
trigger: string;
}> | undefined;
}, "ids">>;
};