import { Component, MaybeRefOrGetter } from '../../node_modules/vue'; import { SharingPlatform } from '../enums'; /** * Description of a single social network share endpoint: the base share URL, * the icon to display, and the mapping from query parameter to share value key. */ export interface SharingPlatformConfig { base: string; icon: Component; args: Record; } type SharingPlatforms = Record; /** * Per-network share endpoints. Each `args` entry maps the network's own query * parameter name to the generic share value key it should receive. * * @source https://github.com/bradvin/social-share-urls */ export declare const networks: SharingPlatforms; /** * Holds the single share popup window shared across every link instance, plus * the interval that polls for its closing. Kept module-level so that all links * cooperate on (and tear down) the same popup. */ export interface SharingPopup { instance: Window | null | undefined; interval: undefined | ReturnType; parent: (Window & typeof globalThis) | null; } /** * @internal Module-level singleton, not part of the public API. Re-exported * from SharingOptionsLink.vue only so the existing component spec can poke it. */ export declare const $popup: SharingPopup; /** * Generic share values a link can carry. Each key maps onto a network query * parameter through the network's `args` configuration. */ export interface SharingValues { url?: string | null; title?: string | null; description?: string | null; media?: string | null; user?: string | null; hashtags?: string | null; } /** * Builds the share URL for a social network and drives the share popup window. * * The URL building (`base`, `args`, `query`, `href`) is pure and deterministic, * derived only from the target network and the share values. The popup helpers * cooperate on a single module-level window ({@link $popup}) so concurrent links * never leave orphaned popups or polling intervals behind. * * @param network - Target social network (plain value, ref, or getter). * @param values - Generic share values (url, title, description, …); may be reactive. * @returns Reactive share-link state plus popup lifecycle helpers. * @example * // Internal building block — import via relative path inside the library. * */ export declare function useSharingOptionsLink(network: MaybeRefOrGetter, values: MaybeRefOrGetter): { base: import('../../node_modules/vue').ComputedRef; args: import('../../node_modules/vue').ComputedRef>; iconComponent: import('../../node_modules/vue').ComputedRef; query: import('../../node_modules/vue').ComputedRef>; href: import('../../node_modules/vue').ComputedRef; name: import('../../node_modules/vue').ComputedRef; popupParams: import('../../node_modules/vue').ComputedRef; hasPopup: () => boolean; openPopup: () => void; openSharePopup: () => void; cleanExistingPopupInstance: () => void; cleanExistingPopupInterval: () => void; }; export default useSharingOptionsLink;