import type { HookContext, HookFunction } from '../types/index.js';
export type { HookContext, HookFunction };
/**
 * Hooks Manager - Executes lifecycle hooks for collections
 *
 * Matches Sequelize implementation 1:1
 */
export declare class HooksManager {
    private hooks;
    /**
     * Register a hook for a collection and event
     */
    registerHook(collection: string, event: string, hookFunction: HookFunction): void;
    /**
     * Get hooks for a collection and event
     * Returns both specific hooks and wildcard hooks (registered for all collections)
     */
    getHooks(collection: string, event: string): HookFunction[];
    /**
     * Execute hooks for a collection and action
     */
    executeHooks(collection: string, event: string, accountability: any, context: HookContext): Promise<HookContext>;
    /**
     * Load hooks from extensions directory
     */
    loadHooksFromDirectory(context: any, directory?: string): Promise<void>;
    /**
     * Load schedules from extensions directory
     */
    loadSchedulesFromDirectory(context: any, schedule: any, directory?: string): Promise<void>;
}
declare global {
    var __baasix_hooksManager: HooksManager | undefined;
    var __baasix_hooksManagerInitialized: boolean | undefined;
}
export declare const hooksManager: HooksManager;
export default hooksManager;
//# sourceMappingURL=HooksManager.d.ts.map