import { AssetHyperlink, AssetLinkBlock, EntryHyperlink, EntryLinkBlock, Hyperlink, ResourceLinkBlock, ResourceLinkInline } from '../nodeTypes.js'; import { Block, Document, Inline } from '../types.js'; import type { Path } from './path.js'; import { ValidationError } from './types.js'; export type Node = Document | Block | Inline; export type GetContentRule = string[] | ((node: T, path: Path) => { nodeTypes: string[]; min?: number; }); export type ValidateData = (data: T['data'], path: Path) => ValidationError[]; export declare const VOID_CONTENT: GetContentRule; export declare class NodeAssertion { private contentRule; private validateData?; constructor(contentRule: GetContentRule, validateData?: ValidateData); assert(node: T, path: Path): ValidationError[]; } export declare class EntityLinkAssertion extends NodeAssertion { private linkType; private type; constructor(linkType: 'Entry' | 'Asset' | 'Contentful:Entry', contentNodeTypes: GetContentRule); private assertLink; } export declare class HyperLinkAssertion extends NodeAssertion { constructor(); private assertLink; } export declare const assert: (contentRule: GetContentRule, validateData?: ValidateData) => NodeAssertion; export declare const assertLink: (linkType: "Entry" | "Asset" | "Contentful:Entry", contentRule: GetContentRule) => EntityLinkAssertion;