import { XmlDocument, XmlElement, XmlElementNode } from './XmlModel.js';
import StreamerState from "./StreamerState.js";
export type XmlStreamerParseOptions = {
    ignoreDefaultTags?: boolean;
    beforeProcess?: (streamerState: StreamerState) => void;
};
export declare class XmlStreamerContext {
    document: XmlDocument;
    options: XmlStreamerParseOptions;
    children: XmlElementNode[];
    openElements: XmlElement[];
    streamerState: StreamerState;
    constructor(document?: XmlDocument | null, options?: XmlStreamerParseOptions);
    append(xmlString: string): void;
    process(): void;
    flush(force?: boolean): void;
    applyNamespaces(): void;
}
type ParseXmlChunkResultText = {
    type: 'text';
    content: string;
};
type ParseXmlChunkResultElementBase = {
    localFullname: string;
};
type ParseXmlChunkResultElementAttrs = {
    attrs: {
        [localFullname: string]: string;
    };
};
type ParseXmlChunkResultElementOpen = ParseXmlChunkResultElementBase & ParseXmlChunkResultElementAttrs & {
    type: 'element-open';
};
type ParseXmlChunkResultElementSelfClose = ParseXmlChunkResultElementBase & ParseXmlChunkResultElementAttrs & {
    type: 'element-self-close';
};
type ParseXmlChunkResultElementClose = ParseXmlChunkResultElementBase & {
    type: 'element-close';
};
type ParseXmlChunkResultUnknown = {
    type: 'unknown';
};
type ParseXmlChunkResultElement = ParseXmlChunkResultElementOpen | ParseXmlChunkResultElementSelfClose | ParseXmlChunkResultElementClose;
type ParseXmlChunkResultCommon = {
    remainingXmlString: string;
};
type ParseXmlChunkResult = ParseXmlChunkResultCommon & (ParseXmlChunkResultText | ParseXmlChunkResultElement | ParseXmlChunkResultUnknown);
export declare function parseXmlStringChunk(xmlString: string, options?: XmlStreamerParseOptions): ParseXmlChunkResult;
export {};
//# sourceMappingURL=XmlStreamer.d.ts.map