import type { Comment } from 'hast';
import type { Code } from 'mdast';
import type { Node, Point, Position } from 'unist';
export interface FullyDefinedPoint extends Point {
    offset: number;
}
export interface FullyDefinedPosition extends Position {
    start: FullyDefinedPoint;
    end: FullyDefinedPoint;
}
export interface FullyPositionedNode extends Node {
    position: FullyDefinedPosition;
}
export type CodeExampleLink = {
    node: Readonly<Comment & FullyPositionedNode>;
    linkPath: string;
    indent: string;
    linkedCodeBlock: Readonly<Code & FullyPositionedNode> | undefined;
};
export declare function extractIndent(line: string, node: Readonly<{
    value: unknown;
} & FullyPositionedNode>): string;
export declare function extractLinks(markdownFileContents: string | Readonly<Buffer>): Readonly<CodeExampleLink>[];
export declare function assertFullyPositionedNode(node: Node): asserts node is FullyPositionedNode;
