import { FilledLinkToDocumentField, FilledLinkToMediaField, FilledLinkToWebField, LinkField, PrismicDocument } from "@prismicio/types";
import { LinkResolverFunction } from "./types";
/**
 * The return type of `asLink()`.
 */
type AsLinkReturnType<LinkResolverFunctionReturnType = string, Field extends LinkField | PrismicDocument | null | undefined = LinkField | PrismicDocument | null | undefined> = Field extends FilledLinkToWebField | FilledLinkToMediaField | FilledLinkToDocumentField | PrismicDocument ? LinkResolverFunctionReturnType | string | null : null;
/**
 * Resolves any type of link field or document to a URL
 *
 * @typeParam LinkResolverFunctionReturnType - Link resolver function return
 *   type
 * @param linkFieldOrDocument - Any kind of link field or a document to resolve
 * @param linkResolver - An optional link resolver function, without it you're
 *   expected to use the `routes` options from the API
 *
 * @returns Resolved URL, null if provided link is empty
 * @see Prismic link resolver documentation: {@link https://prismic.io/docs/technologies/link-resolver-javascript}
 * @see Prismic API `routes` options documentation: {@link https://prismic.io/docs/technologies/route-resolver-nuxtjs}
 */
export declare const asLink: <LinkResolverFunctionReturnType = string, Field extends PrismicDocument<Record<string, any>, string, string> | FilledLinkToDocumentField<string, string, unknown> | import("@prismicio/types").EmptyLinkField<"Any"> | FilledLinkToWebField | FilledLinkToMediaField | null | undefined = PrismicDocument<Record<string, any>, string, string> | FilledLinkToDocumentField<string, string, unknown> | import("@prismicio/types").EmptyLinkField<"Any"> | FilledLinkToWebField | FilledLinkToMediaField | null | undefined>(linkFieldOrDocument: Field, linkResolver?: LinkResolverFunction<LinkResolverFunctionReturnType> | null | undefined) => AsLinkReturnType<LinkResolverFunctionReturnType, Field>;
export {};
