/**
 * Warning entry for hook execution
 */
export interface HookWarning {
    severity: 'WARNING' | 'ERROR';
    message: string;
    recommendation?: string;
}
/**
 * Log entry for hook execution
 */
export interface HookLogEntry {
    hookName: string;
    status: 'success' | 'warning' | 'error';
    duration?: number;
    timestamp?: string;
    requestId?: string;
    error?: string;
    stackTrace?: string;
    warnings?: HookWarning[];
    startTime?: number;
    endTime?: number;
}
/**
 * Centralized hook logging system with structured output
 *
 * Features:
 * - Real-time log writing to .specweave/logs/hooks/
 * - Structured JSON format for easy parsing
 * - Request ID correlation for multi-hook operations
 * - Append-only logs per hook name
 *
 * @example
 * ```typescript
 * const logger = new HookLogger('.specweave/logs/hooks');
 *
 * await logger.log({
 *   hookName: 'user-prompt-submit',
 *   status: 'warning',
 *   duration: 5200,
 *   warnings: [{
 *     severity: 'WARNING',
 *     message: 'Hook execution timeout after 5s',
 *     recommendation: 'Run specweave hooks health'
 *   }]
 * });
 * ```
 */
export declare class HookLogger {
    private logDir;
    /**
     * Create a new HookLogger instance
     *
     * @param logDir - Directory to write log files (e.g., '.specweave/logs/hooks')
     */
    constructor(logDir: string);
    /**
     * Log a hook execution event
     *
     * Writes to {logDir}/{hookName}.log in append mode.
     * Each line is a complete JSON object.
     *
     * @param entry - Hook log entry
     */
    log(entry: HookLogEntry): Promise<void>;
    /**
     * Read recent log entries for a hook
     *
     * @param hookName - Name of the hook
     * @param limit - Maximum number of entries to return (default: 100)
     * @returns Array of log entries, most recent first
     */
    readLogs(hookName: string, limit?: number): Promise<HookLogEntry[]>;
    /**
     * List all hooks that have log files
     */
    listHooks(): Promise<string[]>;
    /**
     * Clear logs for a specific hook or all hooks
     */
    clearLogs(hookName?: string): Promise<void>;
}
//# sourceMappingURL=hook-logger.d.ts.map