import { IPropertiesService } from './propertiesService/IPropertiesService.js';
import { IPlacementService } from './placementService/IPlacementService.js';
import { IElementsService } from './elementsService/IElementsService.js';
import { IInstanceService } from './instanceService/IInstanceService.js';
import { IPropertyEditorTypesService } from './propertiesService/IPropertyEditorTypesService.js';
import { BaseServiceContainer } from './BaseServiceContainer.js';
import { IHtmlWriterService } from './htmlWriterService/IHtmlWriterService.js';
import { ICodeView } from '../widgets/codeView/ICodeView.js';
import { IHtmlParserService } from './htmlParserService/IHtmlParserService.js';
import { IIntializationService } from './initializationService/IIntializationService.js';
import { IDemoView } from '../widgets/demoView/IDemoView.js';
import { ITool } from '../widgets/designerView/tools/ITool.js';
import { ExtensionType } from '../widgets/designerView/extensions/ExtensionType.js';
import { IDesignerExtensionProvider } from '../widgets/designerView/extensions/IDesignerExtensionProvider.js';
import { NamedTools } from '../widgets/designerView/tools/NamedTools.js';
import { IContextMenuExtension } from '../widgets/designerView/extensions/contextMenu/IContextMenuExtension.js';
import { GlobalContext } from './GlobalContext.js';
import { IBindingService } from './bindingsService/IBindingService.js';
import { IElementAtPointService } from './elementAtPointService/IElementAtPointService.js';
import { ISnaplinesProviderService } from "./placementService/ISnaplinesProviderService.js";
import { IExternalDragDropService } from './dragDropService/IExternalDragDropService.js';
import { ICopyPasteService } from "./copyPasteService/ICopyPasteService.js";
import { IDesignerPointerExtensionProvider } from "../widgets/designerView/extensions/pointerExtensions/IDesignerPointerExtensionProvider.js";
import { IModelCommandService } from "./modelCommandService/IModelCommandService.js";
import { IDesignViewConfigButtonsProvider } from "../widgets/designerView/extensions/buttons/IDesignViewConfigButtonsProvider.js";
import { IDemoProviderService } from "./demoProviderService/IDemoProviderService.js";
import { IBindableObjectsService } from "./bindableObjectsService/IBindableObjectsService.js";
import { IBindableObjectDragDropService } from "./bindableObjectsService/IBindableObjectDragDropService.js";
import { IDesignViewToolbarButtonProvider } from "../widgets/designerView/tools/toolBar/IDesignViewToolbarButtonProvider.js";
import { IElementInteractionService } from './elementInteractionService/IElementInteractionService.js';
import { IProperty } from "./propertiesService/IProperty.js";
import { IDesignItem } from "../item/IDesignItem.js";
import { IBinding } from '../item/IBinding.js';
import { BindingTarget } from '../item/BindingTarget.js';
import { IPropertyGroupsService } from './propertiesService/IPropertyGroupsService.js';
import { IUndoService } from './undoService/IUndoService.js';
import { ISelectionService } from './selectionService/ISelectionService.js';
import { IStylesheetService } from './stylesheetService/IStylesheetService.js';
import { IDesignerCanvas } from '../widgets/designerView/IDesignerCanvas.js';
import { IDesignItemDocumentPositionService } from './designItemDocumentPositionService/IDesignItemDocumentPositionService.js';
import { IDragDropService } from './dragDropService/IDragDropService.js';
import { IDesignItemService } from './designItemService/IDesignItemService.js';
import { IEventsService } from './eventsService/IEventsService.js';
import { IPropertyGridDragDropService } from './dragDropService/IPropertyGridDragDropService.js';
import { IConfigUiService } from './configUiService/IConfigUiService.js';
import { IRefactorService } from './refactorService/IRefactorService.js';
import { InstanceServiceContainer } from './InstanceServiceContainer.js';
import { IDeletionService } from './deletionService/IDeletionService.js';
import { IReferencesChangedService } from './referencesChangedService/IReferencesChangedService.js';
import { IMiniatureViewService } from './miniatureViewService/IMiniatureViewService.js';
import { IPngCreatorService } from './pngCreatorService/IPngCreatorService.js';
import { ISearchService } from './searchService/ISearchService.js';
import { ICollaborationService } from './collaborationService/ICollaborationService.js';
import { IEditorTypeService } from './propertiesService/IEditorTypeService.js';
interface ServiceNameMap {
    "propertyService": IPropertiesService;
    "attachedPropertyService": IPropertiesService;
    "containerService": IPlacementService;
    "snaplinesProviderService": ISnaplinesProviderService;
    "elementsService": IElementsService;
    "instanceService": IInstanceService;
    "propertyEditorTypesService": IPropertyEditorTypesService;
    "htmlWriterService": IHtmlWriterService;
    "htmlParserService": IHtmlParserService;
    "intializationService": IIntializationService;
    "bindingService": IBindingService;
    "bindableObjectsService": IBindableObjectsService;
    "bindableObjectDragDropService": IBindableObjectDragDropService;
    "elementAtPointService": IElementAtPointService;
    "externalDragDropService": IExternalDragDropService;
    "copyPasteService": ICopyPasteService;
    "modelCommandService": IModelCommandService;
    "demoProviderService": IDemoProviderService;
    "elementInteractionService": IElementInteractionService;
    "propertyGroupsService": IPropertyGroupsService;
    "dragDropService": IDragDropService;
    "designItemService": IDesignItemService;
    "eventsService": IEventsService;
    "propertyGridDragDropService": IPropertyGridDragDropService;
    "configUiService": IConfigUiService;
    "refactorService": IRefactorService;
    "deletionService": IDeletionService;
    "referencesChangedService": IReferencesChangedService;
    "miniatureViewService": IMiniatureViewService;
    "pngCreatorService": IPngCreatorService;
    "searchService": ISearchService;
    "editorTypeService": IEditorTypeService;
    "undoService": (designerCanvas: IDesignerCanvas) => IUndoService;
    "selectionService": (designerCanvas: IDesignerCanvas) => ISelectionService;
    "stylesheetService": (designerCanvas: IDesignerCanvas) => IStylesheetService;
    "collaborationService": (designerCanvas: IDesignerCanvas) => ICollaborationService;
    "designItemDocumentPositionService": (designerCanvas: IDesignerCanvas) => IDesignItemDocumentPositionService;
}
export declare class ServiceContainer extends BaseServiceContainer<ServiceNameMap> {
    readonly config: {
        codeViewWidget: new (...args: any[]) => ICodeView & HTMLElement;
        demoViewWidget: new (...args: any[]) => IDemoView & HTMLElement;
        openBindingsEditor?: (property: IProperty, designItems: IDesignItem[], binding: IBinding, bindingTarget: BindingTarget) => Promise<void>;
    };
    readonly designerExtensions: Map<(ExtensionType | string), IDesignerExtensionProvider[]>;
    removeDesignerExtensionOfType(container: (ExtensionType | string), lambda: new (...args: any[]) => IDesignerExtensionProvider): void;
    readonly instanceServiceContainerCreatedCallbacks: ((instanceServiceContainer: InstanceServiceContainer) => void)[];
    readonly designViewConfigButtons: IDesignViewConfigButtonsProvider[];
    readonly designViewToolbarButtons: IDesignViewToolbarButtonProvider[];
    readonly designerPointerExtensions: IDesignerPointerExtensionProvider[];
    designerContextMenuExtensions: IContextMenuExtension[];
    readonly overlayLayerViewAdditionalStyles: CSSStyleSheet[];
    readonly globalContext: GlobalContext;
    readonly options: {
        zoomDesignerBackground: boolean;
        roundPixelsToDecimalPlaces: number;
        resizerPixelSize: number;
    };
    readonly designerTools: Map<string | NamedTools, ITool | (new (IElementDefinition: any) => ITool)>;
    get bindingService(): IBindingService;
    get bindableObjectsServices(): IBindableObjectsService[];
    get bindableObjectDragDropService(): IBindableObjectDragDropService;
    get propertyGridDragDropService(): IPropertyGridDragDropService;
    get dragDropService(): IDragDropService;
    get elementInteractionServices(): IElementInteractionService[];
    get propertiesServices(): IPropertiesService[];
    get attachedPropertyServices(): IPropertiesService[];
    get propertyGroupService(): IPropertyGroupsService;
    get containerServices(): IPlacementService[];
    get snaplinesProviderService(): ISnaplinesProviderService;
    get elementsServices(): IElementsService[];
    get eventsService(): IEventsService[];
    get instanceServices(): IInstanceService[];
    get propertyEditorTypesServices(): IPropertyEditorTypesService[];
    get htmlWriterService(): IHtmlWriterService;
    get htmlParserService(): IHtmlParserService;
    get intializationService(): IIntializationService;
    get elementAtPointService(): IElementAtPointService;
    get externalDragDropService(): IExternalDragDropService;
    get copyPasteService(): ICopyPasteService;
    get modelCommandService(): IModelCommandService;
    get demoProviderService(): IDemoProviderService;
    get designItemService(): IDesignItemService;
    get configUiServices(): IConfigUiService[];
    get refactorServices(): IRefactorService[];
    get deletionService(): IDeletionService;
    get referencesChangedService(): IReferencesChangedService;
    get miniatureViewService(): IMiniatureViewService;
    get pngCreatorService(): IPngCreatorService;
    get searchService(): ISearchService;
    get editorTypesServices(): IEditorTypeService[];
}
export {};
