import { KMXPlus } from "@keymanapp/common-types"; import { CompilerCallbacks, LDMLKeyboard } from "@keymanapp/developer-utils"; import { SectionIdent } from '@keymanapp/ldml-keyboard-constants'; /** newable interface to SectionCompiler c'tor */ export type SectionCompilerNew = new (source: LDMLKeyboard.LDMLKeyboardXMLSourceFile, callbacks: CompilerCallbacks) => SectionCompiler; export declare abstract class SectionCompiler { protected readonly keyboard3: LDMLKeyboard.LKKeyboard; protected readonly callbacks: CompilerCallbacks; constructor(source: LDMLKeyboard.LDMLKeyboardXMLSourceFile, callbacks: CompilerCallbacks); abstract get id(): SectionIdent; /** * This is called before compile. * @returns false if this compiler failed to validate. */ validate(): boolean; /** * Perform the compilation for this section, returning the correct Section subclass * object. * * @param sections any declared dependency sections per dependencies() */ abstract compile(sections: KMXPlus.DependencySections): KMXPlus.Section; /** * This is called after all other compile phases have completed, * when being called by validate(), and provides an * opportunity for late error reporting, for example for invalid strings. * @param section the compiled section, if any. * @returns false if validate fails */ postValidate(section?: KMXPlus.Section): boolean; /** * Get the dependencies for this compiler. * @returns set of dependent sections */ get dependencies(): Set; } //# sourceMappingURL=section-compiler.d.ts.map