import { Shape } from '../../classes/shape';
import { XmlElement } from '../../types/xml-types';
import { ImportedElement, ShapeModificationCallback, ShapeTargetType, Target } from '../../types/types';
import { RootPresTemplate } from '../../interfaces/root-pres-template';
import IArchive from '../../interfaces/iarchive';
import { ContentTypeExtension } from '../../enums/content-type-map';
export declare class MediaBase extends Shape {
    extension: ContentTypeExtension;
    createdRelation: XmlElement;
    callbacks: ShapeModificationCallback[];
    mediaType: string;
    relRootTag: string;
    relationshipType: string;
    counterType: string;
    constructor(shape: ImportedElement, targetType: ShapeTargetType);
    protected getMediaType(): string;
    protected getRelRootTag(): string;
    protected getRelationshipType(): string;
    protected getCounterType(): string;
    modifyOnAddedSlide(targetTemplate: RootPresTemplate, targetSlideNumber: number): Promise<MediaBase>;
    modify(targetTemplate: RootPresTemplate, targetSlideNumber: number): Promise<MediaBase>;
    append(targetTemplate: RootPresTemplate, targetSlideNumber: number): Promise<MediaBase>;
    applyMediaCallbacks(): void;
    remove(targetTemplate: RootPresTemplate, targetSlideNumber: number): Promise<MediaBase>;
    prepare(targetTemplate: RootPresTemplate, targetSlideNumber: number): Promise<void>;
    copyFiles(): Promise<void>;
    appendTypes(): Promise<void>;
    appendToSlideRels(): Promise<void>;
    static getAllOnSlide(archive: IArchive, relsPath: string): Promise<Target[]>;
}
