import { NoteProperties, NotePosition } from "../../../../../../common/model/footnotes/footnote";
import { NumberingFormat } from "../../../../../../common/model/numbering-lists/list-level-properties";
import { XmlReader } from "../../../zip/xml-reader";
import { Data } from "../../data";
import { LeafElementDestination, ElementDestination, ElementHandlerTable } from "../destination";
export declare abstract class NotePropertiesLeafElementDestination extends LeafElementDestination {
    readonly footNote: NoteProperties;
    constructor(data: Data, footNote: NoteProperties);
}
export declare abstract class NotePropertiesDestination extends ElementDestination {
    static handlerTable: ElementHandlerTable;
    static getThis(data: Data): NotePropertiesDestination;
    readonly notes: NoteProperties;
    private readonly defaultPosition;
    private readonly defaultFormat;
    constructor(data: Data, defaultPosition: NotePosition, defaultFormat: NumberingFormat);
    protected get elementHandlerTable(): ElementHandlerTable;
    processElementClose(_reader: XmlReader): Promise<void>;
    protected createPlacementDestination(data: Data): ElementDestination;
    protected createNumberingFormatDestination(data: Data): ElementDestination;
    protected abstract setProperties(notes: NoteProperties): void;
}
export declare class NotePlacementDestination extends NotePropertiesLeafElementDestination {
    readonly defaultPosition: NotePosition;
    constructor(data: Data, footNote: NoteProperties, defaultPosition: NotePosition);
    processElementOpen(reader: XmlReader): Promise<void>;
}
export declare class NoteNumberingFormatDestination extends NotePropertiesLeafElementDestination {
    readonly defaultNumberingFormat: NumberingFormat;
    constructor(data: Data, footNote: NoteProperties, defaultNumberingFormat: NumberingFormat);
    processElementOpen(reader: XmlReader): Promise<void>;
}
