// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.6
// 	protoc        (unknown)
// source: ast/v1/ast.proto

package astv1

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	anypb "google.golang.org/protobuf/types/known/anypb"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type HTMLBlockType int32

const (
	HTMLBlockType_HTML_BLOCK_TYPE_UNSPECIFIED HTMLBlockType = 0
	HTMLBlockType_HTML_BLOCK_TYPE_1           HTMLBlockType = 1
	HTMLBlockType_HTML_BLOCK_TYPE_2           HTMLBlockType = 2
	HTMLBlockType_HTML_BLOCK_TYPE_3           HTMLBlockType = 3
	HTMLBlockType_HTML_BLOCK_TYPE_4           HTMLBlockType = 4
	HTMLBlockType_HTML_BLOCK_TYPE_5           HTMLBlockType = 5
	HTMLBlockType_HTML_BLOCK_TYPE_6           HTMLBlockType = 6
	HTMLBlockType_HTML_BLOCK_TYPE_7           HTMLBlockType = 7
)

// Enum value maps for HTMLBlockType.
var (
	HTMLBlockType_name = map[int32]string{
		0: "HTML_BLOCK_TYPE_UNSPECIFIED",
		1: "HTML_BLOCK_TYPE_1",
		2: "HTML_BLOCK_TYPE_2",
		3: "HTML_BLOCK_TYPE_3",
		4: "HTML_BLOCK_TYPE_4",
		5: "HTML_BLOCK_TYPE_5",
		6: "HTML_BLOCK_TYPE_6",
		7: "HTML_BLOCK_TYPE_7",
	}
	HTMLBlockType_value = map[string]int32{
		"HTML_BLOCK_TYPE_UNSPECIFIED": 0,
		"HTML_BLOCK_TYPE_1":           1,
		"HTML_BLOCK_TYPE_2":           2,
		"HTML_BLOCK_TYPE_3":           3,
		"HTML_BLOCK_TYPE_4":           4,
		"HTML_BLOCK_TYPE_5":           5,
		"HTML_BLOCK_TYPE_6":           6,
		"HTML_BLOCK_TYPE_7":           7,
	}
)

func (x HTMLBlockType) Enum() *HTMLBlockType {
	p := new(HTMLBlockType)
	*p = x
	return p
}

func (x HTMLBlockType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (HTMLBlockType) Descriptor() protoreflect.EnumDescriptor {
	return file_ast_v1_ast_proto_enumTypes[0].Descriptor()
}

func (HTMLBlockType) Type() protoreflect.EnumType {
	return &file_ast_v1_ast_proto_enumTypes[0]
}

func (x HTMLBlockType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use HTMLBlockType.Descriptor instead.
func (HTMLBlockType) EnumDescriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{0}
}

type AutoLinkType int32

const (
	AutoLinkType_AUTO_LINK_TYPE_UNSPECIFIED AutoLinkType = 0
	AutoLinkType_AUTO_LINK_TYPE_EMAIL       AutoLinkType = 1
	AutoLinkType_AUTO_LINK_TYPE_URL         AutoLinkType = 2
)

// Enum value maps for AutoLinkType.
var (
	AutoLinkType_name = map[int32]string{
		0: "AUTO_LINK_TYPE_UNSPECIFIED",
		1: "AUTO_LINK_TYPE_EMAIL",
		2: "AUTO_LINK_TYPE_URL",
	}
	AutoLinkType_value = map[string]int32{
		"AUTO_LINK_TYPE_UNSPECIFIED": 0,
		"AUTO_LINK_TYPE_EMAIL":       1,
		"AUTO_LINK_TYPE_URL":         2,
	}
)

func (x AutoLinkType) Enum() *AutoLinkType {
	p := new(AutoLinkType)
	*p = x
	return p
}

func (x AutoLinkType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (AutoLinkType) Descriptor() protoreflect.EnumDescriptor {
	return file_ast_v1_ast_proto_enumTypes[1].Descriptor()
}

func (AutoLinkType) Type() protoreflect.EnumType {
	return &file_ast_v1_ast_proto_enumTypes[1]
}

func (x AutoLinkType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use AutoLinkType.Descriptor instead.
func (AutoLinkType) EnumDescriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{1}
}

type CellAlignment int32

const (
	CellAlignment_CELL_ALIGNMENT_UNSPECIFIED CellAlignment = 0
	CellAlignment_CELL_ALIGNMENT_LEFT        CellAlignment = 1
	CellAlignment_CELL_ALIGNMENT_RIGHT       CellAlignment = 2
	CellAlignment_CELL_ALIGNMENT_CENTER      CellAlignment = 3
	CellAlignment_CELL_ALIGNMENT_NONE        CellAlignment = 4
)

// Enum value maps for CellAlignment.
var (
	CellAlignment_name = map[int32]string{
		0: "CELL_ALIGNMENT_UNSPECIFIED",
		1: "CELL_ALIGNMENT_LEFT",
		2: "CELL_ALIGNMENT_RIGHT",
		3: "CELL_ALIGNMENT_CENTER",
		4: "CELL_ALIGNMENT_NONE",
	}
	CellAlignment_value = map[string]int32{
		"CELL_ALIGNMENT_UNSPECIFIED": 0,
		"CELL_ALIGNMENT_LEFT":        1,
		"CELL_ALIGNMENT_RIGHT":       2,
		"CELL_ALIGNMENT_CENTER":      3,
		"CELL_ALIGNMENT_NONE":        4,
	}
)

func (x CellAlignment) Enum() *CellAlignment {
	p := new(CellAlignment)
	*p = x
	return p
}

func (x CellAlignment) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (CellAlignment) Descriptor() protoreflect.EnumDescriptor {
	return file_ast_v1_ast_proto_enumTypes[2].Descriptor()
}

func (CellAlignment) Type() protoreflect.EnumType {
	return &file_ast_v1_ast_proto_enumTypes[2]
}

func (x CellAlignment) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use CellAlignment.Descriptor instead.
func (CellAlignment) EnumDescriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{2}
}

type Attribute struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	Name  []byte                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Types that are valid to be assigned to Value:
	//
	//	*Attribute_Bytes
	//	*Attribute_Str
	Value         isAttribute_Value `protobuf_oneof:"value"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Attribute) Reset() {
	*x = Attribute{}
	mi := &file_ast_v1_ast_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Attribute) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Attribute) ProtoMessage() {}

func (x *Attribute) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Attribute.ProtoReflect.Descriptor instead.
func (*Attribute) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{0}
}

func (x *Attribute) GetName() []byte {
	if x != nil {
		return x.Name
	}
	return nil
}

func (x *Attribute) GetValue() isAttribute_Value {
	if x != nil {
		return x.Value
	}
	return nil
}

func (x *Attribute) GetBytes() []byte {
	if x != nil {
		if x, ok := x.Value.(*Attribute_Bytes); ok {
			return x.Bytes
		}
	}
	return nil
}

func (x *Attribute) GetStr() string {
	if x != nil {
		if x, ok := x.Value.(*Attribute_Str); ok {
			return x.Str
		}
	}
	return ""
}

type isAttribute_Value interface {
	isAttribute_Value()
}

type Attribute_Bytes struct {
	Bytes []byte `protobuf:"bytes,2,opt,name=bytes,proto3,oneof"`
}

type Attribute_Str struct {
	Str string `protobuf:"bytes,3,opt,name=str,proto3,oneof"`
}

func (*Attribute_Bytes) isAttribute_Value() {}

func (*Attribute_Str) isAttribute_Value() {}

type BaseNode struct {
	state      protoimpl.MessageState `protogen:"open.v1"`
	Children   []*Node                `protobuf:"bytes,1,rep,name=children,proto3" json:"children,omitempty"`
	Attributes []*Attribute           `protobuf:"bytes,2,rep,name=attributes,proto3" json:"attributes,omitempty"`
	// value meaningful only for blocks
	BlankPreviousLines bool `protobuf:"varint,3,opt,name=blank_previous_lines,json=blankPreviousLines,proto3" json:"blank_previous_lines,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

func (x *BaseNode) Reset() {
	*x = BaseNode{}
	mi := &file_ast_v1_ast_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *BaseNode) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*BaseNode) ProtoMessage() {}

func (x *BaseNode) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BaseNode.ProtoReflect.Descriptor instead.
func (*BaseNode) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{1}
}

func (x *BaseNode) GetChildren() []*Node {
	if x != nil {
		return x.Children
	}
	return nil
}

func (x *BaseNode) GetAttributes() []*Attribute {
	if x != nil {
		return x.Attributes
	}
	return nil
}

func (x *BaseNode) GetBlankPreviousLines() bool {
	if x != nil {
		return x.BlankPreviousLines
	}
	return false
}

type Node struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Kind:
	//
	//	*Node_Document
	//	*Node_TextBlock
	//	*Node_Paragraph
	//	*Node_Heading
	//	*Node_ThematicBreak
	//	*Node_CodeBlock
	//	*Node_FencedCodeBlock
	//	*Node_Blockquote
	//	*Node_List
	//	*Node_ListItem
	//	*Node_HtmlBlock
	//	*Node_Text
	//	*Node_String_
	//	*Node_CodeSpan
	//	*Node_Emphasis
	//	*Node_LinkOrImage
	//	*Node_AutoLink
	//	*Node_RawHtml
	//	*Node_Table
	//	*Node_TableRow
	//	*Node_TableCell
	//	*Node_TaskCheckbox
	//	*Node_Strikethrough
	//	*Node_ContentNode
	//	*Node_Custom
	Kind          isNode_Kind `protobuf_oneof:"kind"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Node) Reset() {
	*x = Node{}
	mi := &file_ast_v1_ast_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Node) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Node) ProtoMessage() {}

func (x *Node) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Node.ProtoReflect.Descriptor instead.
func (*Node) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{2}
}

func (x *Node) GetKind() isNode_Kind {
	if x != nil {
		return x.Kind
	}
	return nil
}

func (x *Node) GetDocument() *Document {
	if x != nil {
		if x, ok := x.Kind.(*Node_Document); ok {
			return x.Document
		}
	}
	return nil
}

func (x *Node) GetTextBlock() *TextBlock {
	if x != nil {
		if x, ok := x.Kind.(*Node_TextBlock); ok {
			return x.TextBlock
		}
	}
	return nil
}

func (x *Node) GetParagraph() *Paragraph {
	if x != nil {
		if x, ok := x.Kind.(*Node_Paragraph); ok {
			return x.Paragraph
		}
	}
	return nil
}

func (x *Node) GetHeading() *Heading {
	if x != nil {
		if x, ok := x.Kind.(*Node_Heading); ok {
			return x.Heading
		}
	}
	return nil
}

func (x *Node) GetThematicBreak() *ThematicBreak {
	if x != nil {
		if x, ok := x.Kind.(*Node_ThematicBreak); ok {
			return x.ThematicBreak
		}
	}
	return nil
}

func (x *Node) GetCodeBlock() *CodeBlock {
	if x != nil {
		if x, ok := x.Kind.(*Node_CodeBlock); ok {
			return x.CodeBlock
		}
	}
	return nil
}

func (x *Node) GetFencedCodeBlock() *FencedCodeBlock {
	if x != nil {
		if x, ok := x.Kind.(*Node_FencedCodeBlock); ok {
			return x.FencedCodeBlock
		}
	}
	return nil
}

func (x *Node) GetBlockquote() *Blockquote {
	if x != nil {
		if x, ok := x.Kind.(*Node_Blockquote); ok {
			return x.Blockquote
		}
	}
	return nil
}

func (x *Node) GetList() *List {
	if x != nil {
		if x, ok := x.Kind.(*Node_List); ok {
			return x.List
		}
	}
	return nil
}

func (x *Node) GetListItem() *ListItem {
	if x != nil {
		if x, ok := x.Kind.(*Node_ListItem); ok {
			return x.ListItem
		}
	}
	return nil
}

func (x *Node) GetHtmlBlock() *HTMLBlock {
	if x != nil {
		if x, ok := x.Kind.(*Node_HtmlBlock); ok {
			return x.HtmlBlock
		}
	}
	return nil
}

func (x *Node) GetText() *Text {
	if x != nil {
		if x, ok := x.Kind.(*Node_Text); ok {
			return x.Text
		}
	}
	return nil
}

func (x *Node) GetString_() *String {
	if x != nil {
		if x, ok := x.Kind.(*Node_String_); ok {
			return x.String_
		}
	}
	return nil
}

func (x *Node) GetCodeSpan() *CodeSpan {
	if x != nil {
		if x, ok := x.Kind.(*Node_CodeSpan); ok {
			return x.CodeSpan
		}
	}
	return nil
}

func (x *Node) GetEmphasis() *Emphasis {
	if x != nil {
		if x, ok := x.Kind.(*Node_Emphasis); ok {
			return x.Emphasis
		}
	}
	return nil
}

func (x *Node) GetLinkOrImage() *LinkOrImage {
	if x != nil {
		if x, ok := x.Kind.(*Node_LinkOrImage); ok {
			return x.LinkOrImage
		}
	}
	return nil
}

func (x *Node) GetAutoLink() *AutoLink {
	if x != nil {
		if x, ok := x.Kind.(*Node_AutoLink); ok {
			return x.AutoLink
		}
	}
	return nil
}

func (x *Node) GetRawHtml() *RawHTML {
	if x != nil {
		if x, ok := x.Kind.(*Node_RawHtml); ok {
			return x.RawHtml
		}
	}
	return nil
}

func (x *Node) GetTable() *Table {
	if x != nil {
		if x, ok := x.Kind.(*Node_Table); ok {
			return x.Table
		}
	}
	return nil
}

func (x *Node) GetTableRow() *TableRow {
	if x != nil {
		if x, ok := x.Kind.(*Node_TableRow); ok {
			return x.TableRow
		}
	}
	return nil
}

func (x *Node) GetTableCell() *TableCell {
	if x != nil {
		if x, ok := x.Kind.(*Node_TableCell); ok {
			return x.TableCell
		}
	}
	return nil
}

func (x *Node) GetTaskCheckbox() *TaskCheckbox {
	if x != nil {
		if x, ok := x.Kind.(*Node_TaskCheckbox); ok {
			return x.TaskCheckbox
		}
	}
	return nil
}

func (x *Node) GetStrikethrough() *Strikethrough {
	if x != nil {
		if x, ok := x.Kind.(*Node_Strikethrough); ok {
			return x.Strikethrough
		}
	}
	return nil
}

func (x *Node) GetContentNode() *FabricContentNode {
	if x != nil {
		if x, ok := x.Kind.(*Node_ContentNode); ok {
			return x.ContentNode
		}
	}
	return nil
}

func (x *Node) GetCustom() *CustomNode {
	if x != nil {
		if x, ok := x.Kind.(*Node_Custom); ok {
			return x.Custom
		}
	}
	return nil
}

type isNode_Kind interface {
	isNode_Kind()
}

type Node_Document struct {
	// Blocks
	Document *Document `protobuf:"bytes,1,opt,name=document,proto3,oneof"`
}

type Node_TextBlock struct {
	TextBlock *TextBlock `protobuf:"bytes,5,opt,name=text_block,json=textBlock,proto3,oneof"`
}

type Node_Paragraph struct {
	Paragraph *Paragraph `protobuf:"bytes,6,opt,name=paragraph,proto3,oneof"`
}

type Node_Heading struct {
	Heading *Heading `protobuf:"bytes,7,opt,name=heading,proto3,oneof"`
}

type Node_ThematicBreak struct {
	ThematicBreak *ThematicBreak `protobuf:"bytes,8,opt,name=thematic_break,json=thematicBreak,proto3,oneof"`
}

type Node_CodeBlock struct {
	CodeBlock *CodeBlock `protobuf:"bytes,9,opt,name=code_block,json=codeBlock,proto3,oneof"`
}

type Node_FencedCodeBlock struct {
	FencedCodeBlock *FencedCodeBlock `protobuf:"bytes,10,opt,name=fenced_code_block,json=fencedCodeBlock,proto3,oneof"`
}

type Node_Blockquote struct {
	Blockquote *Blockquote `protobuf:"bytes,11,opt,name=blockquote,proto3,oneof"`
}

type Node_List struct {
	List *List `protobuf:"bytes,12,opt,name=list,proto3,oneof"`
}

type Node_ListItem struct {
	ListItem *ListItem `protobuf:"bytes,13,opt,name=list_item,json=listItem,proto3,oneof"`
}

type Node_HtmlBlock struct {
	HtmlBlock *HTMLBlock `protobuf:"bytes,14,opt,name=html_block,json=htmlBlock,proto3,oneof"`
}

type Node_Text struct {
	// inlines
	Text *Text `protobuf:"bytes,15,opt,name=text,proto3,oneof"`
}

type Node_String_ struct {
	String_ *String `protobuf:"bytes,16,opt,name=string,proto3,oneof"`
}

type Node_CodeSpan struct {
	CodeSpan *CodeSpan `protobuf:"bytes,17,opt,name=code_span,json=codeSpan,proto3,oneof"`
}

type Node_Emphasis struct {
	Emphasis *Emphasis `protobuf:"bytes,18,opt,name=emphasis,proto3,oneof"`
}

type Node_LinkOrImage struct {
	LinkOrImage *LinkOrImage `protobuf:"bytes,19,opt,name=link_or_image,json=linkOrImage,proto3,oneof"`
}

type Node_AutoLink struct {
	AutoLink *AutoLink `protobuf:"bytes,20,opt,name=auto_link,json=autoLink,proto3,oneof"`
}

type Node_RawHtml struct {
	RawHtml *RawHTML `protobuf:"bytes,21,opt,name=raw_html,json=rawHtml,proto3,oneof"`
}

type Node_Table struct {
	// Github Flavored Markdown
	// blocks
	Table *Table `protobuf:"bytes,22,opt,name=table,proto3,oneof"`
}

type Node_TableRow struct {
	TableRow *TableRow `protobuf:"bytes,23,opt,name=table_row,json=tableRow,proto3,oneof"`
}

type Node_TableCell struct {
	TableCell *TableCell `protobuf:"bytes,24,opt,name=table_cell,json=tableCell,proto3,oneof"`
}

type Node_TaskCheckbox struct {
	// inline
	TaskCheckbox *TaskCheckbox `protobuf:"bytes,25,opt,name=task_checkbox,json=taskCheckbox,proto3,oneof"`
}

type Node_Strikethrough struct {
	Strikethrough *Strikethrough `protobuf:"bytes,26,opt,name=strikethrough,proto3,oneof"`
}

type Node_ContentNode struct {
	// Root of the plugin-rendered data
	ContentNode *FabricContentNode `protobuf:"bytes,254,opt,name=content_node,json=contentNode,proto3,oneof"`
}

type Node_Custom struct {
	// Custom node types can be serialized using this
	Custom *CustomNode `protobuf:"bytes,255,opt,name=custom,proto3,oneof"`
}

func (*Node_Document) isNode_Kind() {}

func (*Node_TextBlock) isNode_Kind() {}

func (*Node_Paragraph) isNode_Kind() {}

func (*Node_Heading) isNode_Kind() {}

func (*Node_ThematicBreak) isNode_Kind() {}

func (*Node_CodeBlock) isNode_Kind() {}

func (*Node_FencedCodeBlock) isNode_Kind() {}

func (*Node_Blockquote) isNode_Kind() {}

func (*Node_List) isNode_Kind() {}

func (*Node_ListItem) isNode_Kind() {}

func (*Node_HtmlBlock) isNode_Kind() {}

func (*Node_Text) isNode_Kind() {}

func (*Node_String_) isNode_Kind() {}

func (*Node_CodeSpan) isNode_Kind() {}

func (*Node_Emphasis) isNode_Kind() {}

func (*Node_LinkOrImage) isNode_Kind() {}

func (*Node_AutoLink) isNode_Kind() {}

func (*Node_RawHtml) isNode_Kind() {}

func (*Node_Table) isNode_Kind() {}

func (*Node_TableRow) isNode_Kind() {}

func (*Node_TableCell) isNode_Kind() {}

func (*Node_TaskCheckbox) isNode_Kind() {}

func (*Node_Strikethrough) isNode_Kind() {}

func (*Node_ContentNode) isNode_Kind() {}

func (*Node_Custom) isNode_Kind() {}

type Document struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Base          *BaseNode              `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Document) Reset() {
	*x = Document{}
	mi := &file_ast_v1_ast_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Document) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Document) ProtoMessage() {}

func (x *Document) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Document.ProtoReflect.Descriptor instead.
func (*Document) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{3}
}

func (x *Document) GetBase() *BaseNode {
	if x != nil {
		return x.Base
	}
	return nil
}

type TextBlock struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Base          *BaseNode              `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TextBlock) Reset() {
	*x = TextBlock{}
	mi := &file_ast_v1_ast_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TextBlock) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TextBlock) ProtoMessage() {}

func (x *TextBlock) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TextBlock.ProtoReflect.Descriptor instead.
func (*TextBlock) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{4}
}

func (x *TextBlock) GetBase() *BaseNode {
	if x != nil {
		return x.Base
	}
	return nil
}

type Paragraph struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Base          *BaseNode              `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Paragraph) Reset() {
	*x = Paragraph{}
	mi := &file_ast_v1_ast_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Paragraph) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Paragraph) ProtoMessage() {}

func (x *Paragraph) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Paragraph.ProtoReflect.Descriptor instead.
func (*Paragraph) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{5}
}

func (x *Paragraph) GetBase() *BaseNode {
	if x != nil {
		return x.Base
	}
	return nil
}

type Heading struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Base          *BaseNode              `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Level         uint32                 `protobuf:"varint,2,opt,name=level,proto3" json:"level,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Heading) Reset() {
	*x = Heading{}
	mi := &file_ast_v1_ast_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Heading) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Heading) ProtoMessage() {}

func (x *Heading) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Heading.ProtoReflect.Descriptor instead.
func (*Heading) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{6}
}

func (x *Heading) GetBase() *BaseNode {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *Heading) GetLevel() uint32 {
	if x != nil {
		return x.Level
	}
	return 0
}

type ThematicBreak struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Base          *BaseNode              `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ThematicBreak) Reset() {
	*x = ThematicBreak{}
	mi := &file_ast_v1_ast_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ThematicBreak) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ThematicBreak) ProtoMessage() {}

func (x *ThematicBreak) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ThematicBreak.ProtoReflect.Descriptor instead.
func (*ThematicBreak) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{7}
}

func (x *ThematicBreak) GetBase() *BaseNode {
	if x != nil {
		return x.Base
	}
	return nil
}

type CodeBlock struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Base          *BaseNode              `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Lines         [][]byte               `protobuf:"bytes,2,rep,name=lines,proto3" json:"lines,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CodeBlock) Reset() {
	*x = CodeBlock{}
	mi := &file_ast_v1_ast_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CodeBlock) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CodeBlock) ProtoMessage() {}

func (x *CodeBlock) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CodeBlock.ProtoReflect.Descriptor instead.
func (*CodeBlock) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{8}
}

func (x *CodeBlock) GetBase() *BaseNode {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *CodeBlock) GetLines() [][]byte {
	if x != nil {
		return x.Lines
	}
	return nil
}

type FencedCodeBlock struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Base          *BaseNode              `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Info          *Text                  `protobuf:"bytes,2,opt,name=info,proto3" json:"info,omitempty"`
	Lines         [][]byte               `protobuf:"bytes,3,rep,name=lines,proto3" json:"lines,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FencedCodeBlock) Reset() {
	*x = FencedCodeBlock{}
	mi := &file_ast_v1_ast_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FencedCodeBlock) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FencedCodeBlock) ProtoMessage() {}

func (x *FencedCodeBlock) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FencedCodeBlock.ProtoReflect.Descriptor instead.
func (*FencedCodeBlock) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{9}
}

func (x *FencedCodeBlock) GetBase() *BaseNode {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *FencedCodeBlock) GetInfo() *Text {
	if x != nil {
		return x.Info
	}
	return nil
}

func (x *FencedCodeBlock) GetLines() [][]byte {
	if x != nil {
		return x.Lines
	}
	return nil
}

type Blockquote struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Base          *BaseNode              `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Blockquote) Reset() {
	*x = Blockquote{}
	mi := &file_ast_v1_ast_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Blockquote) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Blockquote) ProtoMessage() {}

func (x *Blockquote) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[10]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Blockquote.ProtoReflect.Descriptor instead.
func (*Blockquote) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{10}
}

func (x *Blockquote) GetBase() *BaseNode {
	if x != nil {
		return x.Base
	}
	return nil
}

type List struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Base          *BaseNode              `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Marker        uint32                 `protobuf:"varint,2,opt,name=marker,proto3" json:"marker,omitempty"`
	IsTight       bool                   `protobuf:"varint,3,opt,name=is_tight,json=isTight,proto3" json:"is_tight,omitempty"`
	Start         uint32                 `protobuf:"varint,4,opt,name=start,proto3" json:"start,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *List) Reset() {
	*x = List{}
	mi := &file_ast_v1_ast_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *List) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*List) ProtoMessage() {}

func (x *List) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[11]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use List.ProtoReflect.Descriptor instead.
func (*List) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{11}
}

func (x *List) GetBase() *BaseNode {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *List) GetMarker() uint32 {
	if x != nil {
		return x.Marker
	}
	return 0
}

func (x *List) GetIsTight() bool {
	if x != nil {
		return x.IsTight
	}
	return false
}

func (x *List) GetStart() uint32 {
	if x != nil {
		return x.Start
	}
	return 0
}

type ListItem struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Base          *BaseNode              `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Offset        int64                  `protobuf:"varint,2,opt,name=offset,proto3" json:"offset,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *ListItem) Reset() {
	*x = ListItem{}
	mi := &file_ast_v1_ast_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ListItem) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ListItem) ProtoMessage() {}

func (x *ListItem) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[12]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ListItem.ProtoReflect.Descriptor instead.
func (*ListItem) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{12}
}

func (x *ListItem) GetBase() *BaseNode {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *ListItem) GetOffset() int64 {
	if x != nil {
		return x.Offset
	}
	return 0
}

type HTMLBlock struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Base          *BaseNode              `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Type          HTMLBlockType          `protobuf:"varint,2,opt,name=type,proto3,enum=ast.v1.HTMLBlockType" json:"type,omitempty"`
	Lines         [][]byte               `protobuf:"bytes,3,rep,name=lines,proto3" json:"lines,omitempty"`
	ClosureLine   []byte                 `protobuf:"bytes,4,opt,name=closure_line,json=closureLine,proto3" json:"closure_line,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *HTMLBlock) Reset() {
	*x = HTMLBlock{}
	mi := &file_ast_v1_ast_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *HTMLBlock) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*HTMLBlock) ProtoMessage() {}

func (x *HTMLBlock) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[13]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use HTMLBlock.ProtoReflect.Descriptor instead.
func (*HTMLBlock) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{13}
}

func (x *HTMLBlock) GetBase() *BaseNode {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *HTMLBlock) GetType() HTMLBlockType {
	if x != nil {
		return x.Type
	}
	return HTMLBlockType_HTML_BLOCK_TYPE_UNSPECIFIED
}

func (x *HTMLBlock) GetLines() [][]byte {
	if x != nil {
		return x.Lines
	}
	return nil
}

func (x *HTMLBlock) GetClosureLine() []byte {
	if x != nil {
		return x.ClosureLine
	}
	return nil
}

type Text struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Base          *BaseNode              `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Segment       []byte                 `protobuf:"bytes,2,opt,name=segment,proto3" json:"segment,omitempty"`
	SoftLineBreak bool                   `protobuf:"varint,3,opt,name=soft_line_break,json=softLineBreak,proto3" json:"soft_line_break,omitempty"`
	HardLineBreak bool                   `protobuf:"varint,4,opt,name=hard_line_break,json=hardLineBreak,proto3" json:"hard_line_break,omitempty"`
	Raw           bool                   `protobuf:"varint,5,opt,name=raw,proto3" json:"raw,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Text) Reset() {
	*x = Text{}
	mi := &file_ast_v1_ast_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Text) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Text) ProtoMessage() {}

func (x *Text) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[14]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Text.ProtoReflect.Descriptor instead.
func (*Text) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{14}
}

func (x *Text) GetBase() *BaseNode {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *Text) GetSegment() []byte {
	if x != nil {
		return x.Segment
	}
	return nil
}

func (x *Text) GetSoftLineBreak() bool {
	if x != nil {
		return x.SoftLineBreak
	}
	return false
}

func (x *Text) GetHardLineBreak() bool {
	if x != nil {
		return x.HardLineBreak
	}
	return false
}

func (x *Text) GetRaw() bool {
	if x != nil {
		return x.Raw
	}
	return false
}

type String struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Base          *BaseNode              `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Value         []byte                 `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	Raw           bool                   `protobuf:"varint,3,opt,name=raw,proto3" json:"raw,omitempty"`
	Code          bool                   `protobuf:"varint,4,opt,name=code,proto3" json:"code,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *String) Reset() {
	*x = String{}
	mi := &file_ast_v1_ast_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *String) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*String) ProtoMessage() {}

func (x *String) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[15]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use String.ProtoReflect.Descriptor instead.
func (*String) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{15}
}

func (x *String) GetBase() *BaseNode {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *String) GetValue() []byte {
	if x != nil {
		return x.Value
	}
	return nil
}

func (x *String) GetRaw() bool {
	if x != nil {
		return x.Raw
	}
	return false
}

func (x *String) GetCode() bool {
	if x != nil {
		return x.Code
	}
	return false
}

type CodeSpan struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Base          *BaseNode              `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *CodeSpan) Reset() {
	*x = CodeSpan{}
	mi := &file_ast_v1_ast_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CodeSpan) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CodeSpan) ProtoMessage() {}

func (x *CodeSpan) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[16]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CodeSpan.ProtoReflect.Descriptor instead.
func (*CodeSpan) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{16}
}

func (x *CodeSpan) GetBase() *BaseNode {
	if x != nil {
		return x.Base
	}
	return nil
}

type Emphasis struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Base          *BaseNode              `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Level         int64                  `protobuf:"varint,2,opt,name=level,proto3" json:"level,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Emphasis) Reset() {
	*x = Emphasis{}
	mi := &file_ast_v1_ast_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Emphasis) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Emphasis) ProtoMessage() {}

func (x *Emphasis) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[17]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Emphasis.ProtoReflect.Descriptor instead.
func (*Emphasis) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{17}
}

func (x *Emphasis) GetBase() *BaseNode {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *Emphasis) GetLevel() int64 {
	if x != nil {
		return x.Level
	}
	return 0
}

type LinkOrImage struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Base          *BaseNode              `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Destination   []byte                 `protobuf:"bytes,2,opt,name=destination,proto3" json:"destination,omitempty"`
	Title         []byte                 `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"`
	IsImage       bool                   `protobuf:"varint,4,opt,name=is_image,json=isImage,proto3" json:"is_image,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *LinkOrImage) Reset() {
	*x = LinkOrImage{}
	mi := &file_ast_v1_ast_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *LinkOrImage) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*LinkOrImage) ProtoMessage() {}

func (x *LinkOrImage) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[18]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use LinkOrImage.ProtoReflect.Descriptor instead.
func (*LinkOrImage) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{18}
}

func (x *LinkOrImage) GetBase() *BaseNode {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *LinkOrImage) GetDestination() []byte {
	if x != nil {
		return x.Destination
	}
	return nil
}

func (x *LinkOrImage) GetTitle() []byte {
	if x != nil {
		return x.Title
	}
	return nil
}

func (x *LinkOrImage) GetIsImage() bool {
	if x != nil {
		return x.IsImage
	}
	return false
}

type AutoLink struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Base          *BaseNode              `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Type          AutoLinkType           `protobuf:"varint,2,opt,name=type,proto3,enum=ast.v1.AutoLinkType" json:"type,omitempty"`
	Protocol      []byte                 `protobuf:"bytes,3,opt,name=protocol,proto3" json:"protocol,omitempty"`
	Value         []byte                 `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AutoLink) Reset() {
	*x = AutoLink{}
	mi := &file_ast_v1_ast_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *AutoLink) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AutoLink) ProtoMessage() {}

func (x *AutoLink) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[19]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AutoLink.ProtoReflect.Descriptor instead.
func (*AutoLink) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{19}
}

func (x *AutoLink) GetBase() *BaseNode {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *AutoLink) GetType() AutoLinkType {
	if x != nil {
		return x.Type
	}
	return AutoLinkType_AUTO_LINK_TYPE_UNSPECIFIED
}

func (x *AutoLink) GetProtocol() []byte {
	if x != nil {
		return x.Protocol
	}
	return nil
}

func (x *AutoLink) GetValue() []byte {
	if x != nil {
		return x.Value
	}
	return nil
}

type RawHTML struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Base          *BaseNode              `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Segments      [][]byte               `protobuf:"bytes,2,rep,name=segments,proto3" json:"segments,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RawHTML) Reset() {
	*x = RawHTML{}
	mi := &file_ast_v1_ast_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RawHTML) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RawHTML) ProtoMessage() {}

func (x *RawHTML) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[20]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RawHTML.ProtoReflect.Descriptor instead.
func (*RawHTML) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{20}
}

func (x *RawHTML) GetBase() *BaseNode {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *RawHTML) GetSegments() [][]byte {
	if x != nil {
		return x.Segments
	}
	return nil
}

type Table struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Base          *BaseNode              `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Alignments    []CellAlignment        `protobuf:"varint,2,rep,packed,name=alignments,proto3,enum=ast.v1.CellAlignment" json:"alignments,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Table) Reset() {
	*x = Table{}
	mi := &file_ast_v1_ast_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Table) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Table) ProtoMessage() {}

func (x *Table) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[21]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Table.ProtoReflect.Descriptor instead.
func (*Table) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{21}
}

func (x *Table) GetBase() *BaseNode {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *Table) GetAlignments() []CellAlignment {
	if x != nil {
		return x.Alignments
	}
	return nil
}

type TableRow struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Base          *BaseNode              `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Alignments    []CellAlignment        `protobuf:"varint,2,rep,packed,name=alignments,proto3,enum=ast.v1.CellAlignment" json:"alignments,omitempty"`
	IsHeader      bool                   `protobuf:"varint,4,opt,name=is_header,json=isHeader,proto3" json:"is_header,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TableRow) Reset() {
	*x = TableRow{}
	mi := &file_ast_v1_ast_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TableRow) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TableRow) ProtoMessage() {}

func (x *TableRow) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[22]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TableRow.ProtoReflect.Descriptor instead.
func (*TableRow) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{22}
}

func (x *TableRow) GetBase() *BaseNode {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *TableRow) GetAlignments() []CellAlignment {
	if x != nil {
		return x.Alignments
	}
	return nil
}

func (x *TableRow) GetIsHeader() bool {
	if x != nil {
		return x.IsHeader
	}
	return false
}

type TableCell struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Base          *BaseNode              `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	Alignment     CellAlignment          `protobuf:"varint,2,opt,name=alignment,proto3,enum=ast.v1.CellAlignment" json:"alignment,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TableCell) Reset() {
	*x = TableCell{}
	mi := &file_ast_v1_ast_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TableCell) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TableCell) ProtoMessage() {}

func (x *TableCell) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[23]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TableCell.ProtoReflect.Descriptor instead.
func (*TableCell) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{23}
}

func (x *TableCell) GetBase() *BaseNode {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *TableCell) GetAlignment() CellAlignment {
	if x != nil {
		return x.Alignment
	}
	return CellAlignment_CELL_ALIGNMENT_UNSPECIFIED
}

type TaskCheckbox struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Base          *BaseNode              `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	IsChecked     bool                   `protobuf:"varint,2,opt,name=is_checked,json=isChecked,proto3" json:"is_checked,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *TaskCheckbox) Reset() {
	*x = TaskCheckbox{}
	mi := &file_ast_v1_ast_proto_msgTypes[24]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *TaskCheckbox) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*TaskCheckbox) ProtoMessage() {}

func (x *TaskCheckbox) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[24]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use TaskCheckbox.ProtoReflect.Descriptor instead.
func (*TaskCheckbox) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{24}
}

func (x *TaskCheckbox) GetBase() *BaseNode {
	if x != nil {
		return x.Base
	}
	return nil
}

func (x *TaskCheckbox) GetIsChecked() bool {
	if x != nil {
		return x.IsChecked
	}
	return false
}

type Strikethrough struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Base          *BaseNode              `protobuf:"bytes,1,opt,name=base,proto3" json:"base,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Strikethrough) Reset() {
	*x = Strikethrough{}
	mi := &file_ast_v1_ast_proto_msgTypes[25]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Strikethrough) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Strikethrough) ProtoMessage() {}

func (x *Strikethrough) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[25]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Strikethrough.ProtoReflect.Descriptor instead.
func (*Strikethrough) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{25}
}

func (x *Strikethrough) GetBase() *BaseNode {
	if x != nil {
		return x.Base
	}
	return nil
}

type CustomNode struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Indicates that this block is an inline element
	IsInline           bool       `protobuf:"varint,1,opt,name=is_inline,json=isInline,proto3" json:"is_inline,omitempty"`
	Data               *anypb.Any `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
	BlankPreviousLines bool       `protobuf:"varint,3,opt,name=blank_previous_lines,json=blankPreviousLines,proto3" json:"blank_previous_lines,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

func (x *CustomNode) Reset() {
	*x = CustomNode{}
	mi := &file_ast_v1_ast_proto_msgTypes[26]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *CustomNode) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CustomNode) ProtoMessage() {}

func (x *CustomNode) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[26]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CustomNode.ProtoReflect.Descriptor instead.
func (*CustomNode) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{26}
}

func (x *CustomNode) GetIsInline() bool {
	if x != nil {
		return x.IsInline
	}
	return false
}

func (x *CustomNode) GetData() *anypb.Any {
	if x != nil {
		return x.Data
	}
	return nil
}

func (x *CustomNode) GetBlankPreviousLines() bool {
	if x != nil {
		return x.BlankPreviousLines
	}
	return false
}

type Metadata struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// ie "blackstork/builtin"
	Provider string `protobuf:"bytes,1,opt,name=provider,proto3" json:"provider,omitempty"`
	// ie "title"
	Plugin        string `protobuf:"bytes,2,opt,name=plugin,proto3" json:"plugin,omitempty"`
	Version       string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Metadata) Reset() {
	*x = Metadata{}
	mi := &file_ast_v1_ast_proto_msgTypes[27]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Metadata) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Metadata) ProtoMessage() {}

func (x *Metadata) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[27]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Metadata.ProtoReflect.Descriptor instead.
func (*Metadata) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{27}
}

func (x *Metadata) GetProvider() string {
	if x != nil {
		return x.Provider
	}
	return ""
}

func (x *Metadata) GetPlugin() string {
	if x != nil {
		return x.Plugin
	}
	return ""
}

func (x *Metadata) GetVersion() string {
	if x != nil {
		return x.Version
	}
	return ""
}

// Root of the plugin-rendered data
type FabricContentNode struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Metadata      *Metadata              `protobuf:"bytes,1,opt,name=metadata,proto3" json:"metadata,omitempty"`
	Root          *BaseNode              `protobuf:"bytes,2,opt,name=root,proto3" json:"root,omitempty"` // direct content, no document node
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FabricContentNode) Reset() {
	*x = FabricContentNode{}
	mi := &file_ast_v1_ast_proto_msgTypes[28]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FabricContentNode) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FabricContentNode) ProtoMessage() {}

func (x *FabricContentNode) ProtoReflect() protoreflect.Message {
	mi := &file_ast_v1_ast_proto_msgTypes[28]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FabricContentNode.ProtoReflect.Descriptor instead.
func (*FabricContentNode) Descriptor() ([]byte, []int) {
	return file_ast_v1_ast_proto_rawDescGZIP(), []int{28}
}

func (x *FabricContentNode) GetMetadata() *Metadata {
	if x != nil {
		return x.Metadata
	}
	return nil
}

func (x *FabricContentNode) GetRoot() *BaseNode {
	if x != nil {
		return x.Root
	}
	return nil
}

var File_ast_v1_ast_proto protoreflect.FileDescriptor

const file_ast_v1_ast_proto_rawDesc = "" +
	"\n" +
	"\x10ast/v1/ast.proto\x12\x06ast.v1\x1a\x19google/protobuf/any.proto\"T\n" +
	"\tAttribute\x12\x12\n" +
	"\x04name\x18\x01 \x01(\fR\x04name\x12\x16\n" +
	"\x05bytes\x18\x02 \x01(\fH\x00R\x05bytes\x12\x12\n" +
	"\x03str\x18\x03 \x01(\tH\x00R\x03strB\a\n" +
	"\x05value\"\x99\x01\n" +
	"\bBaseNode\x12(\n" +
	"\bchildren\x18\x01 \x03(\v2\f.ast.v1.NodeR\bchildren\x121\n" +
	"\n" +
	"attributes\x18\x02 \x03(\v2\x11.ast.v1.AttributeR\n" +
	"attributes\x120\n" +
	"\x14blank_previous_lines\x18\x03 \x01(\bR\x12blankPreviousLines\"\x8d\n" +
	"\n" +
	"\x04Node\x12.\n" +
	"\bdocument\x18\x01 \x01(\v2\x10.ast.v1.DocumentH\x00R\bdocument\x122\n" +
	"\n" +
	"text_block\x18\x05 \x01(\v2\x11.ast.v1.TextBlockH\x00R\ttextBlock\x121\n" +
	"\tparagraph\x18\x06 \x01(\v2\x11.ast.v1.ParagraphH\x00R\tparagraph\x12+\n" +
	"\aheading\x18\a \x01(\v2\x0f.ast.v1.HeadingH\x00R\aheading\x12>\n" +
	"\x0ethematic_break\x18\b \x01(\v2\x15.ast.v1.ThematicBreakH\x00R\rthematicBreak\x122\n" +
	"\n" +
	"code_block\x18\t \x01(\v2\x11.ast.v1.CodeBlockH\x00R\tcodeBlock\x12E\n" +
	"\x11fenced_code_block\x18\n" +
	" \x01(\v2\x17.ast.v1.FencedCodeBlockH\x00R\x0ffencedCodeBlock\x124\n" +
	"\n" +
	"blockquote\x18\v \x01(\v2\x12.ast.v1.BlockquoteH\x00R\n" +
	"blockquote\x12\"\n" +
	"\x04list\x18\f \x01(\v2\f.ast.v1.ListH\x00R\x04list\x12/\n" +
	"\tlist_item\x18\r \x01(\v2\x10.ast.v1.ListItemH\x00R\blistItem\x122\n" +
	"\n" +
	"html_block\x18\x0e \x01(\v2\x11.ast.v1.HTMLBlockH\x00R\thtmlBlock\x12\"\n" +
	"\x04text\x18\x0f \x01(\v2\f.ast.v1.TextH\x00R\x04text\x12(\n" +
	"\x06string\x18\x10 \x01(\v2\x0e.ast.v1.StringH\x00R\x06string\x12/\n" +
	"\tcode_span\x18\x11 \x01(\v2\x10.ast.v1.CodeSpanH\x00R\bcodeSpan\x12.\n" +
	"\bemphasis\x18\x12 \x01(\v2\x10.ast.v1.EmphasisH\x00R\bemphasis\x129\n" +
	"\rlink_or_image\x18\x13 \x01(\v2\x13.ast.v1.LinkOrImageH\x00R\vlinkOrImage\x12/\n" +
	"\tauto_link\x18\x14 \x01(\v2\x10.ast.v1.AutoLinkH\x00R\bautoLink\x12,\n" +
	"\braw_html\x18\x15 \x01(\v2\x0f.ast.v1.RawHTMLH\x00R\arawHtml\x12%\n" +
	"\x05table\x18\x16 \x01(\v2\r.ast.v1.TableH\x00R\x05table\x12/\n" +
	"\ttable_row\x18\x17 \x01(\v2\x10.ast.v1.TableRowH\x00R\btableRow\x122\n" +
	"\n" +
	"table_cell\x18\x18 \x01(\v2\x11.ast.v1.TableCellH\x00R\ttableCell\x12;\n" +
	"\rtask_checkbox\x18\x19 \x01(\v2\x14.ast.v1.TaskCheckboxH\x00R\ftaskCheckbox\x12=\n" +
	"\rstrikethrough\x18\x1a \x01(\v2\x15.ast.v1.StrikethroughH\x00R\rstrikethrough\x12?\n" +
	"\fcontent_node\x18\xfe\x01 \x01(\v2\x19.ast.v1.FabricContentNodeH\x00R\vcontentNode\x12-\n" +
	"\x06custom\x18\xff\x01 \x01(\v2\x12.ast.v1.CustomNodeH\x00R\x06customB\x06\n" +
	"\x04kind\"0\n" +
	"\bDocument\x12$\n" +
	"\x04base\x18\x01 \x01(\v2\x10.ast.v1.BaseNodeR\x04base\"1\n" +
	"\tTextBlock\x12$\n" +
	"\x04base\x18\x01 \x01(\v2\x10.ast.v1.BaseNodeR\x04base\"1\n" +
	"\tParagraph\x12$\n" +
	"\x04base\x18\x01 \x01(\v2\x10.ast.v1.BaseNodeR\x04base\"E\n" +
	"\aHeading\x12$\n" +
	"\x04base\x18\x01 \x01(\v2\x10.ast.v1.BaseNodeR\x04base\x12\x14\n" +
	"\x05level\x18\x02 \x01(\rR\x05level\"5\n" +
	"\rThematicBreak\x12$\n" +
	"\x04base\x18\x01 \x01(\v2\x10.ast.v1.BaseNodeR\x04base\"G\n" +
	"\tCodeBlock\x12$\n" +
	"\x04base\x18\x01 \x01(\v2\x10.ast.v1.BaseNodeR\x04base\x12\x14\n" +
	"\x05lines\x18\x02 \x03(\fR\x05lines\"o\n" +
	"\x0fFencedCodeBlock\x12$\n" +
	"\x04base\x18\x01 \x01(\v2\x10.ast.v1.BaseNodeR\x04base\x12 \n" +
	"\x04info\x18\x02 \x01(\v2\f.ast.v1.TextR\x04info\x12\x14\n" +
	"\x05lines\x18\x03 \x03(\fR\x05lines\"2\n" +
	"\n" +
	"Blockquote\x12$\n" +
	"\x04base\x18\x01 \x01(\v2\x10.ast.v1.BaseNodeR\x04base\"u\n" +
	"\x04List\x12$\n" +
	"\x04base\x18\x01 \x01(\v2\x10.ast.v1.BaseNodeR\x04base\x12\x16\n" +
	"\x06marker\x18\x02 \x01(\rR\x06marker\x12\x19\n" +
	"\bis_tight\x18\x03 \x01(\bR\aisTight\x12\x14\n" +
	"\x05start\x18\x04 \x01(\rR\x05start\"H\n" +
	"\bListItem\x12$\n" +
	"\x04base\x18\x01 \x01(\v2\x10.ast.v1.BaseNodeR\x04base\x12\x16\n" +
	"\x06offset\x18\x02 \x01(\x03R\x06offset\"\x95\x01\n" +
	"\tHTMLBlock\x12$\n" +
	"\x04base\x18\x01 \x01(\v2\x10.ast.v1.BaseNodeR\x04base\x12)\n" +
	"\x04type\x18\x02 \x01(\x0e2\x15.ast.v1.HTMLBlockTypeR\x04type\x12\x14\n" +
	"\x05lines\x18\x03 \x03(\fR\x05lines\x12!\n" +
	"\fclosure_line\x18\x04 \x01(\fR\vclosureLine\"\xa8\x01\n" +
	"\x04Text\x12$\n" +
	"\x04base\x18\x01 \x01(\v2\x10.ast.v1.BaseNodeR\x04base\x12\x18\n" +
	"\asegment\x18\x02 \x01(\fR\asegment\x12&\n" +
	"\x0fsoft_line_break\x18\x03 \x01(\bR\rsoftLineBreak\x12&\n" +
	"\x0fhard_line_break\x18\x04 \x01(\bR\rhardLineBreak\x12\x10\n" +
	"\x03raw\x18\x05 \x01(\bR\x03raw\"j\n" +
	"\x06String\x12$\n" +
	"\x04base\x18\x01 \x01(\v2\x10.ast.v1.BaseNodeR\x04base\x12\x14\n" +
	"\x05value\x18\x02 \x01(\fR\x05value\x12\x10\n" +
	"\x03raw\x18\x03 \x01(\bR\x03raw\x12\x12\n" +
	"\x04code\x18\x04 \x01(\bR\x04code\"0\n" +
	"\bCodeSpan\x12$\n" +
	"\x04base\x18\x01 \x01(\v2\x10.ast.v1.BaseNodeR\x04base\"F\n" +
	"\bEmphasis\x12$\n" +
	"\x04base\x18\x01 \x01(\v2\x10.ast.v1.BaseNodeR\x04base\x12\x14\n" +
	"\x05level\x18\x02 \x01(\x03R\x05level\"\x86\x01\n" +
	"\vLinkOrImage\x12$\n" +
	"\x04base\x18\x01 \x01(\v2\x10.ast.v1.BaseNodeR\x04base\x12 \n" +
	"\vdestination\x18\x02 \x01(\fR\vdestination\x12\x14\n" +
	"\x05title\x18\x03 \x01(\fR\x05title\x12\x19\n" +
	"\bis_image\x18\x04 \x01(\bR\aisImage\"\x8c\x01\n" +
	"\bAutoLink\x12$\n" +
	"\x04base\x18\x01 \x01(\v2\x10.ast.v1.BaseNodeR\x04base\x12(\n" +
	"\x04type\x18\x02 \x01(\x0e2\x14.ast.v1.AutoLinkTypeR\x04type\x12\x1a\n" +
	"\bprotocol\x18\x03 \x01(\fR\bprotocol\x12\x14\n" +
	"\x05value\x18\x04 \x01(\fR\x05value\"K\n" +
	"\aRawHTML\x12$\n" +
	"\x04base\x18\x01 \x01(\v2\x10.ast.v1.BaseNodeR\x04base\x12\x1a\n" +
	"\bsegments\x18\x02 \x03(\fR\bsegments\"d\n" +
	"\x05Table\x12$\n" +
	"\x04base\x18\x01 \x01(\v2\x10.ast.v1.BaseNodeR\x04base\x125\n" +
	"\n" +
	"alignments\x18\x02 \x03(\x0e2\x15.ast.v1.CellAlignmentR\n" +
	"alignments\"\x84\x01\n" +
	"\bTableRow\x12$\n" +
	"\x04base\x18\x01 \x01(\v2\x10.ast.v1.BaseNodeR\x04base\x125\n" +
	"\n" +
	"alignments\x18\x02 \x03(\x0e2\x15.ast.v1.CellAlignmentR\n" +
	"alignments\x12\x1b\n" +
	"\tis_header\x18\x04 \x01(\bR\bisHeader\"f\n" +
	"\tTableCell\x12$\n" +
	"\x04base\x18\x01 \x01(\v2\x10.ast.v1.BaseNodeR\x04base\x123\n" +
	"\talignment\x18\x02 \x01(\x0e2\x15.ast.v1.CellAlignmentR\talignment\"S\n" +
	"\fTaskCheckbox\x12$\n" +
	"\x04base\x18\x01 \x01(\v2\x10.ast.v1.BaseNodeR\x04base\x12\x1d\n" +
	"\n" +
	"is_checked\x18\x02 \x01(\bR\tisChecked\"5\n" +
	"\rStrikethrough\x12$\n" +
	"\x04base\x18\x01 \x01(\v2\x10.ast.v1.BaseNodeR\x04base\"\x85\x01\n" +
	"\n" +
	"CustomNode\x12\x1b\n" +
	"\tis_inline\x18\x01 \x01(\bR\bisInline\x12(\n" +
	"\x04data\x18\x02 \x01(\v2\x14.google.protobuf.AnyR\x04data\x120\n" +
	"\x14blank_previous_lines\x18\x03 \x01(\bR\x12blankPreviousLines\"X\n" +
	"\bMetadata\x12\x1a\n" +
	"\bprovider\x18\x01 \x01(\tR\bprovider\x12\x16\n" +
	"\x06plugin\x18\x02 \x01(\tR\x06plugin\x12\x18\n" +
	"\aversion\x18\x03 \x01(\tR\aversion\"g\n" +
	"\x11FabricContentNode\x12,\n" +
	"\bmetadata\x18\x01 \x01(\v2\x10.ast.v1.MetadataR\bmetadata\x12$\n" +
	"\x04root\x18\x02 \x01(\v2\x10.ast.v1.BaseNodeR\x04root*\xd1\x01\n" +
	"\rHTMLBlockType\x12\x1f\n" +
	"\x1bHTML_BLOCK_TYPE_UNSPECIFIED\x10\x00\x12\x15\n" +
	"\x11HTML_BLOCK_TYPE_1\x10\x01\x12\x15\n" +
	"\x11HTML_BLOCK_TYPE_2\x10\x02\x12\x15\n" +
	"\x11HTML_BLOCK_TYPE_3\x10\x03\x12\x15\n" +
	"\x11HTML_BLOCK_TYPE_4\x10\x04\x12\x15\n" +
	"\x11HTML_BLOCK_TYPE_5\x10\x05\x12\x15\n" +
	"\x11HTML_BLOCK_TYPE_6\x10\x06\x12\x15\n" +
	"\x11HTML_BLOCK_TYPE_7\x10\a*`\n" +
	"\fAutoLinkType\x12\x1e\n" +
	"\x1aAUTO_LINK_TYPE_UNSPECIFIED\x10\x00\x12\x18\n" +
	"\x14AUTO_LINK_TYPE_EMAIL\x10\x01\x12\x16\n" +
	"\x12AUTO_LINK_TYPE_URL\x10\x02*\x96\x01\n" +
	"\rCellAlignment\x12\x1e\n" +
	"\x1aCELL_ALIGNMENT_UNSPECIFIED\x10\x00\x12\x17\n" +
	"\x13CELL_ALIGNMENT_LEFT\x10\x01\x12\x18\n" +
	"\x14CELL_ALIGNMENT_RIGHT\x10\x02\x12\x19\n" +
	"\x15CELL_ALIGNMENT_CENTER\x10\x03\x12\x17\n" +
	"\x13CELL_ALIGNMENT_NONE\x10\x04B\x84\x01\n" +
	"\n" +
	"com.ast.v1B\bAstProtoP\x01Z3github.com/blackstork-io/fabric/plugin/ast/v1;astv1\xa2\x02\x03AXX\xaa\x02\x06Ast.V1\xca\x02\x06Ast\\V1\xe2\x02\x12Ast\\V1\\GPBMetadata\xea\x02\aAst::V1b\x06proto3"

var (
	file_ast_v1_ast_proto_rawDescOnce sync.Once
	file_ast_v1_ast_proto_rawDescData []byte
)

func file_ast_v1_ast_proto_rawDescGZIP() []byte {
	file_ast_v1_ast_proto_rawDescOnce.Do(func() {
		file_ast_v1_ast_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_ast_v1_ast_proto_rawDesc), len(file_ast_v1_ast_proto_rawDesc)))
	})
	return file_ast_v1_ast_proto_rawDescData
}

var file_ast_v1_ast_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_ast_v1_ast_proto_msgTypes = make([]protoimpl.MessageInfo, 29)
var file_ast_v1_ast_proto_goTypes = []any{
	(HTMLBlockType)(0),        // 0: ast.v1.HTMLBlockType
	(AutoLinkType)(0),         // 1: ast.v1.AutoLinkType
	(CellAlignment)(0),        // 2: ast.v1.CellAlignment
	(*Attribute)(nil),         // 3: ast.v1.Attribute
	(*BaseNode)(nil),          // 4: ast.v1.BaseNode
	(*Node)(nil),              // 5: ast.v1.Node
	(*Document)(nil),          // 6: ast.v1.Document
	(*TextBlock)(nil),         // 7: ast.v1.TextBlock
	(*Paragraph)(nil),         // 8: ast.v1.Paragraph
	(*Heading)(nil),           // 9: ast.v1.Heading
	(*ThematicBreak)(nil),     // 10: ast.v1.ThematicBreak
	(*CodeBlock)(nil),         // 11: ast.v1.CodeBlock
	(*FencedCodeBlock)(nil),   // 12: ast.v1.FencedCodeBlock
	(*Blockquote)(nil),        // 13: ast.v1.Blockquote
	(*List)(nil),              // 14: ast.v1.List
	(*ListItem)(nil),          // 15: ast.v1.ListItem
	(*HTMLBlock)(nil),         // 16: ast.v1.HTMLBlock
	(*Text)(nil),              // 17: ast.v1.Text
	(*String)(nil),            // 18: ast.v1.String
	(*CodeSpan)(nil),          // 19: ast.v1.CodeSpan
	(*Emphasis)(nil),          // 20: ast.v1.Emphasis
	(*LinkOrImage)(nil),       // 21: ast.v1.LinkOrImage
	(*AutoLink)(nil),          // 22: ast.v1.AutoLink
	(*RawHTML)(nil),           // 23: ast.v1.RawHTML
	(*Table)(nil),             // 24: ast.v1.Table
	(*TableRow)(nil),          // 25: ast.v1.TableRow
	(*TableCell)(nil),         // 26: ast.v1.TableCell
	(*TaskCheckbox)(nil),      // 27: ast.v1.TaskCheckbox
	(*Strikethrough)(nil),     // 28: ast.v1.Strikethrough
	(*CustomNode)(nil),        // 29: ast.v1.CustomNode
	(*Metadata)(nil),          // 30: ast.v1.Metadata
	(*FabricContentNode)(nil), // 31: ast.v1.FabricContentNode
	(*anypb.Any)(nil),         // 32: google.protobuf.Any
}
var file_ast_v1_ast_proto_depIdxs = []int32{
	5,  // 0: ast.v1.BaseNode.children:type_name -> ast.v1.Node
	3,  // 1: ast.v1.BaseNode.attributes:type_name -> ast.v1.Attribute
	6,  // 2: ast.v1.Node.document:type_name -> ast.v1.Document
	7,  // 3: ast.v1.Node.text_block:type_name -> ast.v1.TextBlock
	8,  // 4: ast.v1.Node.paragraph:type_name -> ast.v1.Paragraph
	9,  // 5: ast.v1.Node.heading:type_name -> ast.v1.Heading
	10, // 6: ast.v1.Node.thematic_break:type_name -> ast.v1.ThematicBreak
	11, // 7: ast.v1.Node.code_block:type_name -> ast.v1.CodeBlock
	12, // 8: ast.v1.Node.fenced_code_block:type_name -> ast.v1.FencedCodeBlock
	13, // 9: ast.v1.Node.blockquote:type_name -> ast.v1.Blockquote
	14, // 10: ast.v1.Node.list:type_name -> ast.v1.List
	15, // 11: ast.v1.Node.list_item:type_name -> ast.v1.ListItem
	16, // 12: ast.v1.Node.html_block:type_name -> ast.v1.HTMLBlock
	17, // 13: ast.v1.Node.text:type_name -> ast.v1.Text
	18, // 14: ast.v1.Node.string:type_name -> ast.v1.String
	19, // 15: ast.v1.Node.code_span:type_name -> ast.v1.CodeSpan
	20, // 16: ast.v1.Node.emphasis:type_name -> ast.v1.Emphasis
	21, // 17: ast.v1.Node.link_or_image:type_name -> ast.v1.LinkOrImage
	22, // 18: ast.v1.Node.auto_link:type_name -> ast.v1.AutoLink
	23, // 19: ast.v1.Node.raw_html:type_name -> ast.v1.RawHTML
	24, // 20: ast.v1.Node.table:type_name -> ast.v1.Table
	25, // 21: ast.v1.Node.table_row:type_name -> ast.v1.TableRow
	26, // 22: ast.v1.Node.table_cell:type_name -> ast.v1.TableCell
	27, // 23: ast.v1.Node.task_checkbox:type_name -> ast.v1.TaskCheckbox
	28, // 24: ast.v1.Node.strikethrough:type_name -> ast.v1.Strikethrough
	31, // 25: ast.v1.Node.content_node:type_name -> ast.v1.FabricContentNode
	29, // 26: ast.v1.Node.custom:type_name -> ast.v1.CustomNode
	4,  // 27: ast.v1.Document.base:type_name -> ast.v1.BaseNode
	4,  // 28: ast.v1.TextBlock.base:type_name -> ast.v1.BaseNode
	4,  // 29: ast.v1.Paragraph.base:type_name -> ast.v1.BaseNode
	4,  // 30: ast.v1.Heading.base:type_name -> ast.v1.BaseNode
	4,  // 31: ast.v1.ThematicBreak.base:type_name -> ast.v1.BaseNode
	4,  // 32: ast.v1.CodeBlock.base:type_name -> ast.v1.BaseNode
	4,  // 33: ast.v1.FencedCodeBlock.base:type_name -> ast.v1.BaseNode
	17, // 34: ast.v1.FencedCodeBlock.info:type_name -> ast.v1.Text
	4,  // 35: ast.v1.Blockquote.base:type_name -> ast.v1.BaseNode
	4,  // 36: ast.v1.List.base:type_name -> ast.v1.BaseNode
	4,  // 37: ast.v1.ListItem.base:type_name -> ast.v1.BaseNode
	4,  // 38: ast.v1.HTMLBlock.base:type_name -> ast.v1.BaseNode
	0,  // 39: ast.v1.HTMLBlock.type:type_name -> ast.v1.HTMLBlockType
	4,  // 40: ast.v1.Text.base:type_name -> ast.v1.BaseNode
	4,  // 41: ast.v1.String.base:type_name -> ast.v1.BaseNode
	4,  // 42: ast.v1.CodeSpan.base:type_name -> ast.v1.BaseNode
	4,  // 43: ast.v1.Emphasis.base:type_name -> ast.v1.BaseNode
	4,  // 44: ast.v1.LinkOrImage.base:type_name -> ast.v1.BaseNode
	4,  // 45: ast.v1.AutoLink.base:type_name -> ast.v1.BaseNode
	1,  // 46: ast.v1.AutoLink.type:type_name -> ast.v1.AutoLinkType
	4,  // 47: ast.v1.RawHTML.base:type_name -> ast.v1.BaseNode
	4,  // 48: ast.v1.Table.base:type_name -> ast.v1.BaseNode
	2,  // 49: ast.v1.Table.alignments:type_name -> ast.v1.CellAlignment
	4,  // 50: ast.v1.TableRow.base:type_name -> ast.v1.BaseNode
	2,  // 51: ast.v1.TableRow.alignments:type_name -> ast.v1.CellAlignment
	4,  // 52: ast.v1.TableCell.base:type_name -> ast.v1.BaseNode
	2,  // 53: ast.v1.TableCell.alignment:type_name -> ast.v1.CellAlignment
	4,  // 54: ast.v1.TaskCheckbox.base:type_name -> ast.v1.BaseNode
	4,  // 55: ast.v1.Strikethrough.base:type_name -> ast.v1.BaseNode
	32, // 56: ast.v1.CustomNode.data:type_name -> google.protobuf.Any
	30, // 57: ast.v1.FabricContentNode.metadata:type_name -> ast.v1.Metadata
	4,  // 58: ast.v1.FabricContentNode.root:type_name -> ast.v1.BaseNode
	59, // [59:59] is the sub-list for method output_type
	59, // [59:59] is the sub-list for method input_type
	59, // [59:59] is the sub-list for extension type_name
	59, // [59:59] is the sub-list for extension extendee
	0,  // [0:59] is the sub-list for field type_name
}

func init() { file_ast_v1_ast_proto_init() }
func file_ast_v1_ast_proto_init() {
	if File_ast_v1_ast_proto != nil {
		return
	}
	file_ast_v1_ast_proto_msgTypes[0].OneofWrappers = []any{
		(*Attribute_Bytes)(nil),
		(*Attribute_Str)(nil),
	}
	file_ast_v1_ast_proto_msgTypes[2].OneofWrappers = []any{
		(*Node_Document)(nil),
		(*Node_TextBlock)(nil),
		(*Node_Paragraph)(nil),
		(*Node_Heading)(nil),
		(*Node_ThematicBreak)(nil),
		(*Node_CodeBlock)(nil),
		(*Node_FencedCodeBlock)(nil),
		(*Node_Blockquote)(nil),
		(*Node_List)(nil),
		(*Node_ListItem)(nil),
		(*Node_HtmlBlock)(nil),
		(*Node_Text)(nil),
		(*Node_String_)(nil),
		(*Node_CodeSpan)(nil),
		(*Node_Emphasis)(nil),
		(*Node_LinkOrImage)(nil),
		(*Node_AutoLink)(nil),
		(*Node_RawHtml)(nil),
		(*Node_Table)(nil),
		(*Node_TableRow)(nil),
		(*Node_TableCell)(nil),
		(*Node_TaskCheckbox)(nil),
		(*Node_Strikethrough)(nil),
		(*Node_ContentNode)(nil),
		(*Node_Custom)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_ast_v1_ast_proto_rawDesc), len(file_ast_v1_ast_proto_rawDesc)),
			NumEnums:      3,
			NumMessages:   29,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_ast_v1_ast_proto_goTypes,
		DependencyIndexes: file_ast_v1_ast_proto_depIdxs,
		EnumInfos:         file_ast_v1_ast_proto_enumTypes,
		MessageInfos:      file_ast_v1_ast_proto_msgTypes,
	}.Build()
	File_ast_v1_ast_proto = out.File
	file_ast_v1_ast_proto_goTypes = nil
	file_ast_v1_ast_proto_depIdxs = nil
}
