/**
 * 주홍이 builtin slash command 레지스트리를 구성하고 실행 흐름을 연결하는 파일이다.
 * 명령 등록, 카탈로그 노출, 보안 검사, telemetry 기록을 한곳에서 조정한다.
 */
import type { CommandExecutionResult, CommandRegistrationFactory, JuHongECommandContext, JuHongECommandDefinition, SessionCommandCatalog } from './types';
import type { SlashCommandOption } from '../ui/index';
/**
 * @description
 * `clearCommandRegistry` 는 메모리상의 builtin 명령 레지스트리를 초기화한다.
 * 테스트나 엔트리 재초기화 시 이전 등록 상태가 남지 않도록 할 때 사용한다.
 *
 * @returns 반환값 없음
 */
export declare function clearCommandRegistry(): void;
/**
 * @description
 * 현재 엔트리 프로필에서 허용되지 않은 builtin slash command를 레지스트리에서 제거한다.
 * FE/ALL 엔트리는 전체 명령을 유지하고, BE 엔트리는 allowlist에 포함된 명령만 남긴다.
 */
export declare function applyBuiltinCommandFilter(allowedCommands?: ReadonlySet<`/${string}`>): void;
/**
 * @description
 * `addCommand` 는 builtin 명령을 레지스트리에 추가한다.
 * 기본 보안 규칙을 보장한 뒤 중복 command 여부를 검사하고, 문제가 없으면 메모리 맵에 저장한다.
 *
 * @param registration 명령 정의 객체 또는 등록 팩토리 함수
 * @returns 반환값 없음
 */
export declare function addCommand(registration: JuHongECommandDefinition | CommandRegistrationFactory<JuHongECommandDefinition>): void;
/**
 * @description
 * `getBuiltinCommands` 는 현재 등록된 builtin 명령 목록을 정렬해 반환한다.
 * 도움말과 prompt 자동완성이 같은 순서를 공유하도록 조회 시점에 정렬을 적용한다.
 *
 * @returns 정렬된 builtin 명령 목록
 */
export declare function getBuiltinCommands(): JuHongECommandDefinition[];
/**
 * @description
 * `getBuiltinCommandNames` 는 parser가 빠르게 조회할 수 있도록 builtin command 이름만 추출한다.
 * slash command 입력 해석 시 전체 정의 대신 이름 배열만 필요할 때 사용한다.
 *
 * @returns 현재 등록된 builtin command 이름 배열
 */
export declare function getBuiltinCommandNames(): `/${string}`[];
/**
 * @description
 * `getBuiltinSlashCommands` 는 builtin 명령 정의를 prompt 자동완성 옵션 배열로 변환한다.
 * 세션 배너와 입력 프롬프트가 동일한 option 구조를 쓰도록 도와준다.
 *
 * @returns builtin 명령 기반 slash command 옵션 목록
 */
export declare function getBuiltinSlashCommands(): SlashCommandOption[];
/**
 * @description
 * `getSessionCommandCatalog` 는 세션용 builtin command 카탈로그를 만든다.
 * builtin 정의와 최종 자동완성 옵션 배열을 한 번에 구성한다.
 *
 * @returns prompt UI에 전달할 세션용 command 카탈로그
 */
export declare function getSessionCommandCatalog(): SessionCommandCatalog;
/**
 * @description
 * `findJuHongECommand` 는 command 문자열로 builtin 명령 정의를 조회한다.
 * parser가 builtin으로 해석한 입력을 실제 실행 정의와 연결할 때 사용한다.
 *
 * @param command 찾을 builtin slash command 문자열
 * @returns 해당 builtin 명령 정의 또는 `undefined`
 */
export declare function findJuHongECommand(command: string): JuHongECommandDefinition | undefined;
/**
 * @description
 * `executeJuHongECommand` 는 builtin command 하나의 전체 실행 수명주기를 감싼다.
 * telemetry 입력 수집, 보안 검사, 실제 명령 실행, 성공/실패 상태 추적을 공통으로 처리한다.
 *
 * @param definition 실행할 builtin 명령 정의
 * @param context 현재 builtin command 실행 컨텍스트
 * @returns builtin command 실행 결과
 */
export declare function executeJuHongECommand(definition: JuHongECommandDefinition, context: Omit<JuHongECommandContext, 'definition'>): Promise<CommandExecutionResult>;
//# sourceMappingURL=registry.d.ts.map