/**
 * Mint a signed, time-boxed preview token for a single document. The token is
 * bound to the (collection, documentId) pair server-side, so it can only
 * unlock the exact draft it was issued for. Used to build public preview URLs
 * (`/<prefix>/<slug>?preview=<token>`) that render a draft through the
 * consumer's real front-end — see {@link buildPublicPreviewUrl}.
 */
export declare function createPreviewToken(collection: string, documentId: string, ttlSeconds?: number): Promise<{
    token: string;
    expiresAt: string;
    slug?: string | null;
}>;
export interface PublicPreviewUrlParts {
    /** Absolute site origin, e.g. `https://example.com`. Trailing slash optional. */
    siteUrl: string;
    /** Collection URL prefix (e.g. `blog`). Empty for top-level page collections. */
    urlPrefix?: string | null;
    /** Document slug used in the public path. */
    slug: string;
    /** Signed preview token from {@link createPreviewToken}. */
    token: string;
}
/**
 * Build the public URL a draft preview opens at — the SAME path the
 * `/resolve` endpoint matches: `<urlPrefix>/<slug>` (or `/<slug>` for
 * top-level pages), with the preview token on the query string so the
 * public route can drop the `PUBLISHED` filter for this one document.
 */
export declare function buildPublicPreviewUrl({ siteUrl, urlPrefix, slug, token, }: PublicPreviewUrlParts): string;
/** Resolve the public site origin: explicit config first, else the current tab's origin. */
export declare function resolveSiteUrl(configSiteUrl?: string | null): string;
//# sourceMappingURL=preview-link.d.ts.map