import type { PayloadRequest } from 'payload'; export type NestedDocsPageTreePluginDiagnosticEvent = { collection: string; data: Record; /** Stable identifier for grouping events from the same logical operation. */ flow: string; level: 'error' | 'info' | 'warn'; message: string; source: 'move-endpoint:body-rejected' | 'move-endpoint:enter' | 'move-endpoint:error' | 'move-endpoint:ok' | 'move-endpoint:snapshot-after' | 'move-endpoint:snapshot-before' | 'page-tree-change:after' | 'page-tree-change:status-flip' | 'reorder-endpoint:body-rejected' | 'reorder-endpoint:enter' | 'reorder-endpoint:error' | 'reorder-endpoint:initial-migration' | 'reorder-endpoint:ok'; /** ISO timestamp; included so log dumps are self-describing. */ t: string; }; export type NestedDocsPageTreePluginDiagnosticsConfig = { enabled: boolean; /** * Custom event sink. Defaults to a single-line `console.log` per event. * Useful for routing diagnostics through `req.payload.logger` or similar. */ logger?: (event: NestedDocsPageTreePluginDiagnosticEvent) => void; } | boolean; export type Diagnostics = { enabled: boolean; log: (event: Omit) => void; }; /** Context key used to thread a diagnostics flow id from the move endpoint into afterChange logs. */ export declare const DIAGNOSTICS_FLOW_CONTEXT_KEY = "__pageTreeDiagnosticsFlow"; export declare function resolveDiagnostics(config: NestedDocsPageTreePluginDiagnosticsConfig | undefined): Diagnostics; /** Generate a short flow id so multi-event sequences group together in logs. */ export declare function createFlowID(prefix: string): string; /** * Read a doc directly from the published main-row layer (`draft: false`). * Returns null when the doc is unpublished or unreadable so callers can log * the absence instead of failing the request. */ export declare function readMainRowSnapshot(args: { collectionSlug: string; fields: ReadonlyArray; id: number | string; req: PayloadRequest; }): Promise>; /** Collapse populated relationship docs to their id so logs stay compact. */ export declare function projectField(value: unknown): unknown;