import { MultiLangName, SinhalaFontType } from '@ashiteam/ashisinhala-ts-lib'; import { SongRowType } from './SongRowType.js'; import { SongSection } from './SongSection.js'; import { SongSectionType } from './SongSectionType.js'; import { SongWord } from './SongWord.js'; export declare class SectionMarker { Type: SongSectionType; StartMarker: string; EndMarker: string; AltEndMarker: string; } export declare enum SinglishSongFormat { NormalTextFormat = 0, ACFFormatted = 1 } export declare class SongRowPart { readonly Chord: string; private readonly m_Lyrics; constructor(chord: string); get Lyrics(): SongSection[]; AddSection(section: SongSection): void; } export declare class SongRow { readonly RowType: SongRowType; private readonly m_Parts; constructor(type: SongRowType); get Parts(): SongRowPart[]; AddPart(part: SongRowPart): void; } export declare class SongData { private static readonly SectionMarkers; private static readonly LyricsIgnoreLines; static readonly SEPERATOR = "-------------------------------------"; static readonly SEPERATOR_LOOK_FOR = "---------------------"; protected static readonly THE_DEFAULT_ENGLISH_FONT = "Consolas, \"Liberation Mono\", \"Courier New\""; protected static readonly THE_DEFAULT_SINHALA_FONT_FONT = "Arial"; protected static readonly THE_DEFAULT_ENGLISH_FONT_SIZE = 12; protected static readonly THE_DEFAULT_SINHALA_FONT_FONT_SIZE = 14; protected static readonly MusicLineChordWidth = 6; static GetSectionMarkerForType(type: SongSectionType): SectionMarker | undefined; protected m_pName: MultiLangName; protected m_sLyricsFont: string | null; protected m_nLyricsFontSize: number; protected m_Sections: SongSection[]; protected m_Rows: SongRow[]; IsSinhala: boolean; InEnglish: boolean; TransposeAmt: number; ChordsFontName: string; ChordsFontSize: number; LyricsColorName: string; ChordsColorName: string; LyricsBold: boolean; ChordsBold: boolean; SinhalaFontType: SinhalaFontType; HtmlIn3DBox: boolean; CompactMode: boolean; IsUsingBootstrap: boolean; IsBootstrap5: boolean; RandomKeyToUse?: number; EnglishFontForSinhalaSong: string; EnglishFontSizeForSinhalaSong: number; BackgroundColorName: string; constructor(); constructor(name: string, isSinhala: boolean, text?: string, format?: SinglishSongFormat, fix?: boolean); get LyricsFontName(): string; set LyricsFontName(value: string); get LyricsFontSize(): number; set LyricsFontSize(value: number); get ChordsFontSizeToUse(): number; get Name(): string; set Name(value: string); get EnglshName(): string; get SinglishName(): string; get SinhalaName(): string; get Text(): string; set Text(value: string); get SinhalaText(): string; get LyricsText(): string; get SinhalaLyricsText(): string; get LyricsSimpleText(): string; get SinhalaLyricsSimpleText(): string; get ACFFormattedText(): string; set ACFFormattedText(value: string); get ACFFormattedSimpleText(): string; get ACFFormattedTextForEdit(): string; get ACFFormattedSinhalaText(): string; get ACFFormattedSimpleSinhalaText(): string; get HTML(): string; get HTMLLyrics(): string; get HTMLFile(): string; get HTMLLyricsFile(): string; get Rows(): SongRow[]; get LyricRows(): SongRow[]; get Sections(): SongSection[]; private get RandomKey(); protected Init(name?: string, isSinhala?: boolean, text?: string, format?: SinglishSongFormat, fix?: boolean): void; Clear(): void; AddSection(section: SongSection): void; AddSection(type: SongSectionType, data: string): void; SetFormattedText(text: string, currentType: { value: SongSectionType; }): void; static GetLineType(index: number, allLines: string[]): SongSectionType; RemoveExtraBlankLines(): void; FixInterludeLines(): void; FixAnyFixableProblems(): void; ConvertSharpsAndFlatsToNormal(): void; ConvertSharpsToFlats(): void; ConvertFlatsToSharps(): void; GetRows(lyricsOnly: boolean): SongRow[]; GetRowsRow(lyricsOnly: boolean): SongRow[]; ConvertFromEnglishToSinglish(englishToSinhalaMap?: Record): void; ConvertFromEnglishToSinglishHuristically(): void; GetSongInEnglish(): SongData; MakeTransposePermanant(): void; GetWords(): SongWord[]; UpdateWords(words: SongWord[]): void; IsSame(other: SongData): boolean; ChordsInSong(): string[]; get ChordCount(): number; get ChordCountNoSevens(): number; private static TrimLines; private static SimplifyText; private static IsEmpty; private static GetLineTypeFromLine; private static IsEmptyLine; private ShouldBeNewLine; private SetNormalText; protected static GetSectionBreakIndex(text: string): { index: number; type: SongSectionType; }; protected static GetSectionEndIndex(text: string, type: SongSectionType, startIndex: number): number; private FixPunctuationsInSinhala; private FixChords; private ConvertSharpFlat; protected static IsIgnoreLyricsLine(line: string): boolean; protected GetAsTextFormatted(translateSinhala: boolean, lyricsOnly: boolean): string; protected GetACFFormattedText(translateSinhala: boolean, forEdit?: boolean): string; private static GetSongRowType; private CreateRows; private GetHtml; private GetHtmlFile; DebugLogParts(): void; private ChordsInSongImpl; private ConvertToSinhala; private HtmlEscape; private static readonly Replaces; }