import { IDesignItem } from '../../../item/IDesignItem.js';
import { ExtensionType } from './ExtensionType.js';
import { IDesignerExtension } from './IDesignerExtension.js';
export interface IExtensionManager {
    applyExtension(designItem: IDesignItem, extensionType: ExtensionType, event?: Event, recursive?: boolean): IDesignerExtension[];
    applyExtensions(designItems: IDesignItem[], extensionType: ExtensionType, event?: Event, recursive?: boolean): any;
    applyExtensionInstance(designItem: IDesignItem, extension: IDesignerExtension, extensionType?: ExtensionType): any;
    removeExtension(designItem: IDesignItem, extensionType?: ExtensionType): any;
    removeExtensions(designItems: IDesignItem[], recursive: boolean, extensionType?: ExtensionType): any;
    removeExtensionInstance(designItem: IDesignItem, extension: IDesignerExtension): any;
    refreshExtension(designItem: IDesignItem, extensionType?: ExtensionType, event?: Event): any;
    refreshExtensions(designItems: IDesignItem[], extensionType?: ExtensionType, event?: Event, ignoredExtension?: IDesignerExtension, timeout?: number): any;
    refreshAllExtensions(designItems: IDesignItem[], ignoredExtension?: IDesignerExtension, event?: Event): any;
    refreshAllAppliedExtentions(event?: Event): any;
    reapplyAllAppliedExtentions(filterDesignItems?: IDesignItem[], enabledExtensionTypes?: ExtensionType[]): any;
    connected(): any;
    disconnected(): any;
}
