import { ChartModificationCallback, ImportedElement, ShapeModificationCallback, ShapeTargetType, Target, Workbook } from '../types/types';
import { RootPresTemplate } from '../interfaces/root-pres-template';
import { XmlDocument, XmlElement } from '../types/xml-types';
import { ContentTypeExtension, ContentTypeMap } from '../enums/content-type-map';
import { ElementSubtype } from '../enums/element-type';
import IArchive from '../interfaces/iarchive';
export declare class Shape {
    mode: string;
    name: string;
    sourceArchive: IArchive;
    sourceSlideNumber: number;
    sourceSlideFile: string;
    sourceNumber: number;
    sourceFile: string;
    sourceRid: string;
    sourceElement: XmlElement;
    targetFile: string;
    targetArchive: IArchive;
    targetTemplate: RootPresTemplate;
    targetSlideNumber: number;
    targetNumber: number;
    targetSlideFile: string;
    targetSlideRelFile: string;
    createdRid: string;
    relRootTag: string;
    relAttribute: string;
    relType: string;
    relParent: (element: XmlElement) => XmlElement;
    targetElement: XmlElement;
    targetType: ShapeTargetType;
    target: Target;
    callbacks: (ShapeModificationCallback | ChartModificationCallback)[];
    hasCreationId: boolean;
    contentTypeMap: typeof ContentTypeMap;
    subtype: ElementSubtype;
    shape: ImportedElement;
    constructor(shape: ImportedElement, targetType: ShapeTargetType);
    setTarget(targetTemplate: RootPresTemplate, targetSlideNumber: number): Promise<void>;
    setTargetElement(): Promise<void>;
    appendToSlideTree(): Promise<void>;
    /**
     * Process hyperlinks in the element
     */
    processHyperlinks(): Promise<void>;
    replaceIntoSlideTree(): Promise<void>;
    removeFromSlideTree(): Promise<void>;
    modifySlideTree(insertBefore?: boolean): Promise<void>;
    updateElementsRelId(cb?: (targetElement: XmlElement) => void): Promise<void>;
    getElementsByRid(slideXml: XmlDocument, rId: string): Promise<XmlElement[]>;
    updateTargetElementRelId(): Promise<void>;
    applyCallbacks(callbacks: ShapeModificationCallback[], element: XmlElement, relation?: XmlElement): void;
    applyChartCallbacks(callbacks: ChartModificationCallback[], element: XmlElement, chart: XmlDocument, workbook: Workbook): void;
    appendImageExtensionToContentType(extension: ContentTypeExtension): Promise<XmlElement | boolean>;
}
