import { Dictionary, SegmentEntry, ElementEntry } from "../validator";
import { MessageType } from "../tracker";
import { HttpClient } from "../httpClient";
export interface EdifactMessageSpecification {
    readonly messageType: string;
    readonly version: string;
    readonly release: string;
    readonly controllingAgency: string;
    readonly segmentTable: Dictionary<SegmentEntry>;
    readonly elementTable: Dictionary<ElementEntry>;
    readonly messageStructureDefinition: MessageType[];
    type(): string;
    versionAbbr(): string;
}
export declare class EdifactMessageSpecificationImpl implements EdifactMessageSpecification {
    messageType: string;
    version: string;
    release: string;
    controllingAgency: string;
    segmentTable: Dictionary<SegmentEntry>;
    elementTable: Dictionary<ElementEntry>;
    messageStructureDefinition: MessageType[];
    constructor(messageType: string, version: string, release: string, controllingAgency: string);
    type(): string;
    versionAbbr(): string;
}
export declare type ParsingResultType = {
    specObj: EdifactMessageSpecification;
    promises: Promise<EdifactMessageSpecification>[];
};
export interface MessageStructureParser {
    loadTypeSpec(): Promise<EdifactMessageSpecification>;
}
export declare class UNECEMessageStructureParser implements MessageStructureParser {
    readonly version: string;
    readonly type: string;
    readonly httpClient: HttpClient;
    constructor(version: string, type: string);
    private extractTextValue;
    protected loadPage(page: string): Promise<string>;
    protected parseSegmentDefinitionPage(segment: string, page: string, definition: EdifactMessageSpecification): Promise<EdifactMessageSpecification>;
    private parsePage;
    loadTypeSpec(): Promise<EdifactMessageSpecification>;
}
//# sourceMappingURL=messageStructureParser.d.ts.map