/**
 * @module Utilities
 */
import type { OneOrMore } from "../../../utilities/functions/_module.js";
/**
 * @internal
 */
type KeySettings = {
    prefixArr: Array<string>;
    key: OneOrMore<string>;
    identifierDelimeter: string;
    keyDelimeter: string;
};
/**
 * @internal
 */
export declare class Key {
    private readonly prefixArr;
    private readonly key;
    private readonly identifierDelimeter;
    private readonly keyDelimeter;
    /**
     *
     * @internal
     */
    constructor(settings: KeySettings);
    get original(): OneOrMore<string>;
    get resolved(): string;
    get namespaced(): string;
}
/**
 *
 * IMPORT_PATH: `"@daiso-tech/core/utilities"`
 * @group Namespace
 */
export type NamespaceSettings = {
    /**
     * @default {":"}
     */
    identifierDelimeter?: string;
    /**
     * @default {"/"}
     */
    keyDelimeter?: string;
    /**
     * @default {"_rt"}
     */
    rootIdentifier?: string;
};
/**
 * @internal
 */
declare class InternalNamespace {
    private readonly _rootPrefix;
    private readonly identifierDelimeter;
    private readonly keyDelimeter;
    private readonly rootIdentifier;
    constructor(_rootPrefix: OneOrMore<string>, settings?: NamespaceSettings);
    get original(): OneOrMore<string>;
    get resolved(): string;
    private validate;
    private getKeyPrefixArray;
    get namespaced(): string;
    create(key: OneOrMore<string>): Key;
}
/**
 * The `Namespace` class adds prefixes/suffixes to keys to avoid conflicts and group related items.
 *
 * IMPORT_PATH: `"@daiso-tech/core/utilities"`
 * @group Namespace
 */
export declare class Namespace {
    private readonly root;
    private readonly settings;
    constructor(root: OneOrMore<string>, settings?: NamespaceSettings);
    setIdentifierDelimeter(delimeter: string): Namespace;
    setKeyDelimeter(delimeter: string): Namespace;
    setRootIdentifier(identifier: string): Namespace;
    appendRoot(str: OneOrMore<string>): Namespace;
    /**
     * @internal
     */
    _getInternal(): InternalNamespace;
}
export {};
