export type TextDoc<T = {}> = Array<Node>;
export type Node = TextNode | ElementNode | BlockNode;
export declare namespace Node {
    const type = "_type";
    function isText(node: any): node is TextNode;
    function isElement(node: any): node is ElementNode;
    function isBlock(node: any): node is BlockNode;
}
export interface Mark {
    _type: string;
    [attr: string]: string | undefined;
}
export declare namespace Mark {
    const type = "_type";
}
export interface LinkMark extends Mark {
    _type: 'link';
    _id: string;
    _link: 'entry' | 'file' | 'url';
    _entry?: string;
}
export declare namespace LinkMark {
    const id = "_id";
    const link = "_link";
    const entry = "_entry";
}
export interface TextNode {
    _type: 'text';
    text?: string;
    marks?: Array<Mark>;
}
export declare namespace TextNode {
    const text = "text";
    const marks = "marks";
}
export interface ElementNode {
    _type: string;
    content?: TextDoc;
    [key: string]: any;
}
export declare namespace ElementNode {
    const content = "content";
}
export interface BlockNode {
    _id: string;
    _type: string;
}
export declare namespace BlockNode {
    const id = "_id";
}
