/**
 * Character domain — operations facade (list / get / search projections).
 *
 * Thin layer over `./characterTable.js` (table cache + resolver) and
 * `./characterEnums.js` (profession/charType/weaponType display names).
 * Produces tool-friendly shapes (`CharacterListItem`, `CharacterInfo`)
 * with names resolved through `./texts.ts` so callers get actual strings,
 * not int64 hashes.
 *
 * Lifecycle + resolver symbols (`bindCharacterStore`, `clearCharacterCaches`,
 * `resolveCharacterEntry`, `CharacterEntry`) are re-exported from
 * `./characterTable.js` so existing consumers (server, startupSync,
 * characterProfiles, tests, smoke scripts) keep importing from
 * `./characters.js` unchanged.
 */
import { type LanguageCode } from "./texts.js";
export { bindCharacterStore, clearCharacterCaches, resolveCharacterEntry, } from "./characterTable.js";
export type { CharacterEntry } from "./characterTable.js";
/** Compact summary for list views. */
export interface CharacterListItem {
    id: string;
    name: string;
    engName: string;
    profession: string;
    rarity: number;
    charType: string;
    department: string;
}
/** Detailed view for per-character lookup. */
export interface CharacterInfo {
    id: string;
    name: string;
    engName: string;
    phoneticName: string;
    profession: string;
    professionCode: number;
    rarity: number;
    department: string;
    charType: string;
    weaponType: string;
    weaponTypeCode: number;
    cvNames: {
        chinese: string;
        english: string;
        japanese: string;
        korean: string;
    };
    sortOrder: number;
    defaultWeaponId: string;
}
/** List all characters with default-language names resolved. */
export declare function listCharacters(lang?: LanguageCode): CharacterListItem[];
export declare function getCharacterInfo(idOrName: string, lang?: LanguageCode): CharacterInfo | null;
/**
 * Regex search across names and key fields.
 *
 * Searches resolved names (CN + engName), charId, profession, department,
 * and charType. Returns compact matches with a snippet showing where the
 * pattern hit.
 */
export declare function searchCharacters(pattern: string, maxResults?: number, lang?: LanguageCode): Array<{
    id: string;
    name: string;
    snippet: string;
}>;
