import type { Payload, PayloadRequest } from 'payload'; import type { JsonObject, NitrogenPageDoc, NitrogenTemplateDoc, NitrogenSettingsGlobal, MediaDoc } from '../types.js'; export declare function validateEditorPreviewRoute(editorPreviewRoute?: string): void; export declare function buildEditorPreviewPath(editorPreviewRoute: string, collectionSlug: string, id: string | number): string; export declare function getDocumentRelativePermalink(doc: NitrogenPageDoc | NitrogenTemplateDoc | Record, collectionSlug?: string): string; export declare function getDocumentPermalink(doc: NitrogenPageDoc | NitrogenTemplateDoc | Record, settings: NitrogenSettingsGlobal, collectionSlug?: string): string; export interface TemplateRef { ID: string | number; content: string; } export declare function formatDate(date: string | Date): string; export declare function buildDynamicData(doc: NitrogenPageDoc | NitrogenTemplateDoc, globalSettings?: NitrogenSettingsGlobal): JsonObject; export declare function buildPageResponse(doc: NitrogenPageDoc | NitrogenTemplateDoc, settings: NitrogenSettingsGlobal, dynamicData: JsonObject, collectionSlug?: string, useDraftPreview?: boolean, editorPreviewRoute?: string): { id: string | number; token: string; title: string; status: "draft" | "published"; author: string | number; slug: string; permalink: string; relative_permalink: string; content: string; dynamic_data: JsonObject; settings: JsonObject; nitrogen_settings: { variables?: Record | Array<{ name: string; value?: string; }>; urlMaps: never[]; wysiwygColors: {}; }; }; export declare function buildResolvedPageResponse(payload: Payload, doc: NitrogenPageDoc | NitrogenTemplateDoc, settings: NitrogenSettingsGlobal, dynamicData: JsonObject, collectionSlug?: string, useDraftPreview?: boolean, editorPreviewRoute?: string): Promise<{ id: string | number; token: string; title: string; status: "draft" | "published"; author: string | number; slug: string; permalink: string; relative_permalink: string; content: string; dynamic_data: JsonObject; settings: JsonObject; nitrogen_settings: { variables?: Record | Array<{ name: string; value?: string; }>; urlMaps: never[]; wysiwygColors: {}; }; }>; export declare function buildListItemResponse(doc: NitrogenPageDoc | NitrogenTemplateDoc, settings: NitrogenSettingsGlobal, collectionSlug?: string): { id: string | number; title: string; slug: string; permalink: string; relative_permalink: string; content: string; settings: JsonObject; nitrogen_settings: { variables?: Record | Array<{ name: string; value?: string; }>; urlMaps: never[]; wysiwygColors: {}; }; }; export declare function buildResolvedListItemResponse(payload: Payload, doc: NitrogenPageDoc | NitrogenTemplateDoc, settings: NitrogenSettingsGlobal, collectionSlug?: string): Promise<{ id: string | number; title: string; slug: string; permalink: string; relative_permalink: string; content: string; settings: JsonObject; nitrogen_settings: { variables?: Record | Array<{ name: string; value?: string; }>; urlMaps: never[]; wysiwygColors: {}; }; }>; export declare function buildMediaItemResponse(doc: MediaDoc): { id: string | number; filename: string; mimeType: string; alt: string; url: string; filesize: number; width: number; height: number; createdAt: string; sizes: { [key: string]: import("../types.js").MediaSize | undefined; thumbnail?: import("../types.js").MediaSize; medium?: import("../types.js").MediaSize; large?: import("../types.js").MediaSize; }; thumbnailURL: string; name: string; mime: string; ext: string; size: number; post_date: string; formats: { thumbnail: { url: string; width: number; height: number; } | null; medium: { url: string; width: number; height: number; } | null; large: { url: string; width: number; height: number; } | null; }; }; export declare function getNitrogenSettings(payload: Payload): Promise; /** * Looks up a nitrogen-template by its associatedCollection type (e.g. 'header', 'footer', or a collection slug). * Returns a { ID, content } ref or null if no template exists for that type. */ export declare function getTemplateForType(payload: Payload, type: string): Promise; export declare function requireAuth(req: PayloadRequest): Response | null; /** * True when the request carries the connector token (the `x-nitrogen-token` * header, or `nitrogen-token` query param for iframe URLs) matching the stored * `connectorToken` setting. Lets the staging frontend / editor preview draft & * private docs without a logged-in session. Mirrors WP `preview_token_valid`. */ export declare function previewTokenValid(req: PayloadRequest, settings: NitrogenSettingsGlobal): boolean; /** * Whether a document may be served for a given request. Published docs are * public; non-published (draft/pending/private) docs require either a logged-in * user or a valid preview token. Mirrors the WP status gate in `get_item`. */ export declare function canServeDocument(req: PayloadRequest, doc: Record | null | undefined, settings: NitrogenSettingsGlobal): boolean;