export type HookFormat = "claude-settings-json" | "codex-hooks-json" | "codex-config-toml";
export type HookEvent = "SessionStart" | "SessionEnd" | "UserPromptSubmit" | "PreToolUse" | "PostToolUse" | "PermissionRequest" | "Stop" | "StopFailure" | "Notification" | "PreCompact" | "PostCompact" | "SubagentStart" | "SubagentStop";
export type HookHandlerType = "command" | "http" | "mcp_tool" | "prompt" | "agent";
export interface AgentHookConfig {
    /** File where this agent reads hooks. Supports `~` expansion. */
    globalHookPath: string;
    /** Project-relative path, may be undefined for agents without project scope. */
    localHookPath?: string;
    format: HookFormat;
    /** Events the agent honors. Anything outside this set is dropped at bridge time. */
    supportedEvents: readonly HookEvent[];
    /** Handler types the agent executes. Anything outside this set is dropped. */
    supportedHandlerTypes: readonly HookHandlerType[];
    /**
     * Placeholders the agent recognizes. Bridge consults the source-agent
     * placeholder list to identify tokens that need rewriting and the
     * target-agent list as the canonical destination form.
     */
    placeholders: {
        /** Maps abstract token → concrete substring the agent recognizes. */
        projectDir: string;
        pluginRoot?: string;
        pluginData?: string;
    };
}
export type HookScope = "global" | "local";
export declare const supportedHookAgents: readonly string[];
export type AgentSupportStatus = "supported" | "unsupported" | "unknown";
export interface AgentSupportResult {
    status: AgentSupportStatus;
    input: string;
    id?: string;
    config?: AgentHookConfig;
}
export declare function resolveAgentSupport(input: string, registry?: Record<string, AgentHookConfig>): AgentSupportResult;
export declare function getAgentConfig(agentId: string): AgentHookConfig | undefined;
export declare function resolveHookPath(config: AgentHookConfig, scope: HookScope, cwd: string, homeDir?: string): string | undefined;
