/// import { Router } from './router.js'; import { EventEmitter } from 'events'; import './controls/part.js'; import { Template } from './template.js'; import { IScope } from './scope.js'; import { LocationService as Location } from './locationService.js'; import { IControlInstance } from './controls/control.js'; export type PartInstance = { scope: IScope; element: HTMLElement; controlsInPart?: IControlInstance[]; }; export declare class Part extends EventEmitter { private template; private location; private routers; constructor(template: Template, router: Router, location: Location); private parts; register(partName: string, control: PartInstance): void; apply>(partInstance: () => PartInstance, part: PartDefinition, params: unknown): Promise; use(url: string): Part; use>(url: string, partName: string, part: PartDefinition): void; } export interface PartDefinition> { template?: string | Promise; controller?(scope: TScope, element: Element, params: unknown): Promise; }