import * as htmlparser2 from 'htmlparser2';
interface XmlClassType {
    _xmlTextField?: string;
    _elems: {
        [xmlElementTag: string]: {
            fieldName: string;
            classTypeName: string;
        };
    };
    onOpenTag?(param: UnMarshaller, tagname: string, attributes: {
        [p: string]: string;
    }): void;
    onText?(param: UnMarshaller, text: string): void;
    onCloseTag?(param: UnMarshaller, tagname: string): void;
}
interface StackPos<ValType> {
    val: ValType;
    classType: XmlClassType;
    closeTag: string;
}
export declare function XmlRootElement(xmlElementTag: any): (classType: any) => void;
export declare function XmlElement(): (classType: any) => void;
export declare function XmlAttribute(xmlAttrName: any, fieldName: any): (classType: any) => void;
export declare function XmlElementChild(xmlElementTag: string, fieldName: string, subClassTypeName: string, props?: {
    isArray: boolean;
}): (classType: any) => void;
export declare function XmlText(fieldName: any, props?: {
    isArray: boolean;
}): (classType: any) => void;
export declare class UnMarshaller {
    private classes;
    private rootClassTypeName;
    readonly parser: htmlparser2.Parser;
    private stack;
    constructor(classes: {
        [name: string]: any;
    }, rootClassTypeName: string);
    get top(): StackPos<any>;
    push(val: StackPos<any>): void;
    pop(): StackPos<any> | undefined;
    unmarshal(content: any): any;
    getClass(classTypeName: string): any;
}
export {};
//# sourceMappingURL=UnMarshaller.d.ts.map