/**
 * @license
 * Copyright 2025 Vybestack LLC
 * SPDX-License-Identifier: Apache-2.0
 */
/**
 * Extension hooks consent handling.
 *
 * Prompts users before enabling extension hooks to ensure they understand
 * the security implications.
 */
/**
 * Computes the delta between current and previous hook definitions.
 *
 * @param currentHooks - Current hook definitions
 * @param previousHooks - Previous hook definitions
 * @returns Object containing arrays of new and changed hook names
 */
export declare function computeHookConsentDelta(currentHooks: Record<string, unknown> | undefined, previousHooks: Record<string, unknown> | undefined): {
    newHooks: string[];
    changedHooks: string[];
};
/**
 * Builds a consent prompt string for hook registration.
 *
 * @param extensionName - Name of the extension requesting hook registration
 * @param hookNames - Array of hook names the extension wants to register
 * @returns Formatted consent prompt string
 */
export declare function buildHookConsentPrompt(extensionName: string, hookNames: string[]): string;
/**
 * Requests user consent before enabling extension hooks.
 *
 * Shows which hooks the extension wants to register and asks for user consent.
 * Returns true if user consents, false otherwise.
 *
 * @param extensionName - Name of the extension requesting hook registration
 * @param hookNames - Array of hook names the extension wants to register
 * @param requestConsent - Optional callback to request consent (for testing)
 * @returns Promise resolving to true if user consents, false otherwise
 * @throws Error if in non-interactive context and no requestConsent callback provided
 */
export declare function requestHookConsent(extensionName: string, hookNames: string[], requestConsent?: (prompt: string) => Promise<boolean>): Promise<boolean>;
