///
import type { Options } from './ecmarkup';
import type { ExportedBiblio } from './Biblio';
import Clause from './Clause';
import { CancellationToken } from 'prex';
import type { JSDOM } from 'jsdom';
export type Warning = {
type: 'global';
ruleId: string;
message: string;
} | {
type: 'node';
node: Text | Element;
ruleId: string;
message: string;
} | {
type: 'attr';
node: Element;
attr: string;
ruleId: string;
message: string;
} | {
type: 'attr-value';
node: Element;
attr: string;
ruleId: string;
message: string;
} | {
type: 'contents';
node: Text | Element;
ruleId: string;
message: string;
nodeRelativeLine: number;
nodeRelativeColumn: number;
} | {
type: 'raw';
ruleId: string;
message: string;
line: number;
column: number;
file?: string;
source?: string;
};
export type WorklistItem = {
aoid: string | null;
effects: string[];
};
export declare function maybeAddClauseToEffectWorklist(effectName: string, clause: Clause, worklist: WorklistItem[]): void;
export default class Spec {
spec: this;
opts: Options;
rootPath: string;
rootDir: string;
namespace: string;
generatedFiles: Map;
readonly log: (msg: string) => void;
readonly warn: (err: Warning) => void | undefined;
private _fetch;
constructor(rootPath: string, fetch: (file: string, token: CancellationToken) => PromiseLike, dom: JSDOM, opts: Options | undefined, sourceText: string, token?: CancellationToken);
private labelClauses;
private toHTML;
private buildReferenceGraph;
private readSectionId;
private propagateEffects;
private propagateEffect;
private annotateExternalLinks;
private buildMultipage;
private buildAssets;
private addStyle;
private buildSpecWrapper;
private buildShortcutsHelp;
private processMetadata;
private loadBiblios;
private loadImports;
exportBiblio(): ExportedBiblio | null;
private highlightCode;
private buildBoilerplate;
private buildCopyrightBoilerplate;
private generateSDOMap;
private getProductions;
private setReplacementAlgorithmOffsets;
private _updateBySelector;
}