import { z } from 'zod'; import type { Crashlands2 } from './cl2.types.auto.js'; import type { Gcdata } from './GameChanger.js'; import type { ParsedLineItem, ParsedWord, Position, Range } from './types.editor.js'; import type { Mote } from './types.js'; export type CharacterData = BuddyData | NpcData; export type CharacterMote = BuddyMote | NpcMote; export type JuiceboxData = Crashlands2.Schemas['cl2_juicebox']; export type JuiceboxMote = Mote; export type FluxData = Crashlands2.Schemas['cl2_player']; export type FluxMote = Mote; export declare const questSchemaId = "cl2_quest"; export type QuestData = Crashlands2.Schemas['cl2_quest']; export type QuestMote = Mote; export declare const chatSchemaId = "cl2_chat"; export type ChatData = Crashlands2.Schemas['cl2_chat']; export type ChatMote = Mote; export declare const buddySchemaId = "artisan"; export type BuddyData = Crashlands2.Schemas['artisan']; export type BuddyMote = Mote; export declare const npcSchemaId = "cl2_npc"; export type NpcData = Crashlands2.Schemas['cl2_npc']; export type NpcMote = Mote; export declare const comfortSchemaId = "cl2_artisan_glads"; export type ComfortData = Crashlands2.Schemas['cl2_artisan_glads']; export type ComfortMote = Mote; export declare const storylineSchemaId = "cl2_storyline"; export type StorylineData = Crashlands2.Schemas['cl2_storyline']; export type StorylineMote = Mote; export declare const creditsSchemaId = "cl2_credits"; export type CreditsData = Crashlands2.Schemas['cl2_credits']; export type CreditsMote = Mote; export interface ParsedComment { /** arrayId */ id: string | undefined; text: string | undefined; } export interface ParsedBase { name?: string; stage?: Crashlands2.Staging; comments: ParsedComment[]; } export interface ParserResult

> { diagnostics: (Range & { message: string; })[]; hovers: (Range & { title?: string; description?: string; })[]; edits: (Range & { newText: string; })[]; completions: (Range & CompletionsData)[]; words: ParsedWord[]; parsed: ParsedBase & P; } export type CompletionsData = { type: 'motes'; options: Mote[]; } | { type: 'labels'; options: Set; } | { type: 'stages'; options: Crashlands2.Staging[]; } | { type: 'booleans'; options: ['true', 'false']; } | { type: 'momentStyles'; options: string[]; } | { type: 'requirementStyles'; options: string[]; } | { type: 'glossary'; options: string[]; }; export type ParsedLine = { [K in keyof LineParts]?: ParsedLineItem; } & { _: { start: Position; end: Position; value: string; }; _hadArrayTag?: boolean; }; export declare const arrayTagPattern = "(?:#(?[a-z0-9]+))"; export declare const emojiGroupPattern = "(?\\(\\s*(?[^)]*?)\\s*\\))"; export declare const moteTagPattern = "(?:@(?[a-z0-9_]+))"; export declare const moteNamePattern = "(?[A-Za-z0-9:&?! ',()/-]+)"; export declare const dialogPattern = "^(?>)\\s*?(?:#(?[a-z0-9]+))?(\\s+(?\\(\\s*(?[^)]*?)\\s*\\))?(\\s*(?.*)))?\\s*$"; export declare const commentLinePattern = "^(?//)\\s*?(?:#(?[a-z0-9]+))?\\s*(?.*?)\\s*$"; export type LineParts = z.output; export declare const linePartsSchema: z.ZodObject<{ indicator: z.ZodOptional; arrayTag: z.ZodOptional; arrayTag2: z.ZodOptional; moteTag: z.ZodOptional; moteName: z.ZodOptional; emojiGroup: z.ZodOptional; emojiName: z.ZodOptional; labelGroup: z.ZodOptional; label: z.ZodOptional; sep: z.ZodOptional; text: z.ZodOptional; style: z.ZodOptional; status: z.ZodOptional; }, z.core.$strip>; export declare function parseIfMatch(pattern: string, line: string, startPosition: Position): ParsedLine | null; export declare function lineIsArrayItem(line: string, schemaId: string): boolean; export declare function getStagingOptions(packed: Gcdata): Crashlands2.Staging[]; export declare function getEmojis(packed: Gcdata): Mote[]; /** * List all character motes in the game, including Flux and Juicebox. */ export declare function listAllCharacters(gcData: Gcdata): (CharacterMote | FluxMote | JuiceboxMote)[]; //# sourceMappingURL=cl2.shared.types.d.ts.map