///
import type { ErrorBoundary } from "@prismicio/editor-ui";
import { type LinkContent } from "@prismicio/types-internal/lib/content";
import type { Link } from "@prismicio/types-internal/lib/customtypes";
import type { MediaAssetOrExternalImage } from "../../core/MediaLibrary/hooks/mediaLibraryData";
import type { FieldSelectType } from "./LinkFieldActions";
interface useLinkFieldParams {
field: Link;
content: LinkContent | undefined;
onContentChange: (content: LinkContent | undefined) => void;
}
export declare function useLinkField(params: useLinkFieldParams): {
contentType: "ImageLink" | "FileLink" | "DocumentLink" | "ExternalLink" | "MediaLink" | "AnyLink" | undefined;
selectType: "any" | "document" | "media" | "web" | undefined;
fieldValue: string;
onDisplayTextChange: (displayText: string) => void;
onValueChange: (value: string, options?: {
newTab: boolean;
}) => void;
onTypeChange: (newValue?: FieldSelectType) => void;
placeholder: string;
isTypeSelectEnabled: boolean;
onDocumentSelected: (documentId: string) => void;
onError: () => void;
errorBoundaryRef: import("react").RefObject;
isTargetNewTab: boolean;
onMediaSelected: (newMedia: MediaAssetOrExternalImage) => void;
displayTextEnabled: boolean;
displayText: string;
variants: string[];
variant: string | undefined;
onVariantChange: (newVariant: string) => void;
};
interface MapMediaToLinkContentArgs {
media: MediaAssetOrExternalImage;
}
export declare function mapMediaToLinkContent(args: MapMediaToLinkContentArgs): {
__TYPE__: "LinkContent";
key: `${string}-${string}-${string}-${string}-${string}`;
value: {
__TYPE__: "ImageLink";
id: string;
name: string;
url: string;
kind: "image";
size: string;
height: string;
width: string;
date: string;
};
} | {
__TYPE__: "LinkContent";
key: `${string}-${string}-${string}-${string}-${string}`;
value: {
__TYPE__: "FileLink";
id: string;
name: string;
kind: "file";
url: string;
size: string;
date: string;
height?: undefined;
width?: undefined;
};
} | {
__TYPE__: "LinkContent";
key: `${string}-${string}-${string}-${string}-${string}`;
value: {
__TYPE__: "ImageLink";
id: string;
name: string;
kind: "image";
url: string;
size: string;
height: string;
width: string;
date?: undefined;
};
};
export {};