import { CategoryProvider } from "../api/CategoryProvider";
import { CategoryConfig } from "../api/CategoryConfig";
import { Category } from "../api/Category";
import { LogId, RuntimeSettings } from "typescript-logging";
import { CategoryRuntimeSettings } from "../api/CategoryRuntimeSettings";
/**
 * The separator we use in a path for a category, this cannot be used in a name for a category.
 */
export declare const CATEGORY_PATH_SEPARATOR = "#";
/**
 * Implementation for CategoryProvider.
 */
export declare class CategoryProviderImpl implements CategoryProvider {
    private readonly _name;
    private readonly _initialConfig;
    private readonly _categoryStorage;
    constructor(name: string, config: CategoryConfig);
    get name(): string;
    get config(): CategoryConfig;
    get runtimeConfig(): CategoryConfig;
    getCategory(name: string, parent?: LogId | Category): Category;
    updateRuntimeSettingsCategory(category: Category, settings: CategoryRuntimeSettings): void;
    updateRuntimeSettings(settings: RuntimeSettings): void;
    /** Returns all currently registered categories */
    getRegisteredCategories(): ReadonlyArray<Category>;
    /** Get a category by path, note that paths must be separated by #, e.g. root#child1#child1_1 */
    getCategoryByPath(path: string): Category | undefined;
}
//# sourceMappingURL=CategoryProviderImpl.d.ts.map