/**
 * The single source of naming truth for the whole application.
 *
 * Every user-visible name the product imprints on the world — the spoken app
 * name, the executable users type, the dot-directory it carves under `$HOME`,
 * the `INDUSAGI_*` prefix on its environment variables, the basenames of its
 * on-disk artifacts — is declared *once*, here. Nothing else in the codebase
 * should hard-code any of these strings; everything derives from {@link BRAND}.
 *
 * The motivation is a clean rebrand: changing the product's identity should be a
 * one-file edit, and the {@link Locator} (which computes filesystem locations)
 * reads exclusively from this module so the directory layout follows the name
 * automatically. Keeping the constants frozen and `readonly` means a stray
 * assignment is a type error rather than a silent corruption of identity.
 */
/**
 * The shape of the brand record. Spelled out as an interface (rather than
 * inferred from the literal) so consumers can name the type and so the contract
 * is documented field-by-field.
 */
export interface Brand {
    /** The product's spoken name, used in help banners and prose. */
    readonly appName: string;
    /** The executable name users invoke on the command line. */
    readonly binName: string;
    /**
     * The prefix stamped on every environment variable the app reads or writes,
     * including the trailing underscore (e.g. `"INDUSAGI_"`). Compose a full
     * variable name with {@link envName}.
     */
    readonly envPrefix: string;
    /**
     * The dot-directory carved directly under the user's home for all per-user
     * state (e.g. `".indusagi"`). Leading dot included so it is hidden.
     */
    readonly profileDirName: string;
    /** Basename of the global settings file inside the profile directory. */
    readonly settingsFileName: string;
    /** Basename of the credential/auth store file inside the profile directory. */
    readonly authStoreFileName: string;
    /** Subdirectory (under the profile) holding persisted conversation sessions. */
    readonly sessionsDirName: string;
    /** Subdirectory (under the profile) holding diagnostic and crash logs. */
    readonly logsDirName: string;
    /**
     * Basename of the per-project settings file. Lives in a project's working
     * directory (inside {@link projectDirName}), not under the home profile, so a
     * repository can carry its own overrides.
     */
    readonly projectSettingsFileName: string;
    /**
     * The dot-directory a project keeps in its own root for project-scoped
     * settings (e.g. `".indusagi"`). Mirrors {@link profileDirName} but is rooted
     * at the working directory rather than `$HOME`.
     */
    readonly projectDirName: string;
}
/**
 * The canonical brand for this build of the product. Frozen so the identity is
 * immutable at runtime; `as const` so every field narrows to its literal type.
 */
export declare const BRAND: Brand;
/**
 * Compose a fully-qualified environment variable name from a bare suffix.
 *
 * The suffix is upper-cased and any internal whitespace or hyphens are folded to
 * underscores, then the brand's {@link Brand.envPrefix} is prepended. So
 * `envName("api key")` yields `"INDUSAGI_API_KEY"`. Centralizing this keeps env
 * naming consistent and guarantees the prefix is never forgotten.
 */
export declare function envName(suffix: string, brand?: Brand): string;
