import { AbstractCatalog, ActionHandler, Item } from "./AbstractCatalog"; import { NavigationConfig } from "../../interfaces/adminpanelConfig"; import { Adminizer } from "../Adminizer"; export interface NavItem extends Item { urlPath?: string; modelId?: string | number; targetBlank?: boolean; visible?: boolean; } export declare class StorageService { protected storageMap: Map; protected id: string; protected model: string; protected readonly adminizer: Adminizer; readonly ready: Promise; constructor(adminizer: Adminizer, id: string, model: string); initModel(): Promise; getId(): string; buildTree(): Promise; populateFromTree(tree: any[]): Promise; setElement(id: string | number, item: NavItem, init?: boolean): Promise; removeElementById(id: string | number): Promise; findElementById(id: string | number): Promise; findElementByModelId(modelId: string | number): Promise; saveToDB(): Promise; findElementsByParentId(parentId: string | number, type: string | null): Promise; getAllElements(): Promise; search(s: string, type: string): Promise; } export declare class StorageServices { protected storages: StorageService[]; constructor(); add(storage: StorageService): void; get(id: string): StorageService; getAll(): StorageService[]; /** Resolves when all sections have finished loading from the database */ ready(): Promise; } export declare class Navigation extends AbstractCatalog { readonly name: string; readonly slug: string; readonly icon: string; readonly actionHandlers: ActionHandler[]; idList: string[]; storageServices: StorageServices; constructor(adminizer: Adminizer, config: NavigationConfig); getIdList(): Promise; }