import React from 'react';
import type { Application } from './Application';
import type { RouteType } from './RouterManager';
export declare const USER_SETTINGS_KEY = "profilers.";
export declare const USER_SETTINGS_PATH = "/profilers/";
export declare const SNIPPET_PREFIX = "pm.";
export interface UserSettingOptions {
    title: any;
    /**
     * @default Outlet
     */
    Component?: RouteType['Component'];
    icon?: string;
    /**
     * sort, the smaller the number, the higher the priority
     * @default 0
     */
    sort?: number;
    aclSnippet?: string;
    [index: string]: any;
}
export interface UserSettingsPageType {
    label?: string | React.ReactElement;
    title: string | React.ReactElement;
    key: string;
    icon: any;
    path: string;
    sort?: number;
    name?: string;
    isAllow?: boolean;
    topLevelName?: string;
    aclSnippet: string;
    children?: UserSettingsPageType[];
    [index: string]: any;
}
export declare class UserSettingsManager {
    protected settings: Record<string, UserSettingOptions>;
    protected aclSnippets: string[];
    app: Application;
    private cachedList;
    constructor(_userSettings: Record<string, UserSettingOptions>, app: Application);
    setAclSnippets(aclSnippets: string[]): void;
    getAclSnippet(name: string): string;
    getRouteName(name: string): string;
    getRoutePath(name: string): string;
    add(name: string, options: UserSettingOptions): void;
    remove(name: string): void;
    hasAuth(name: string): boolean;
    getSetting(name: string): UserSettingOptions;
    has(name: string): boolean;
    get(name: string, filterAuth?: boolean): UserSettingsPageType;
    getList(filterAuth?: boolean): UserSettingsPageType[];
    getAclSnippets(): string[];
}
