export interface EventHandler<T> {
    layoutItemName: string;
    func: (value: T) => Event;
}
export interface EventSubscribeConfig<T> {
    targetMatch?: string;
    eventName: string;
    eventHandler: EventHandler<T>;
    priority?: number;
    matchMultiple?: boolean;
}
export interface StoredHandler {
    eventHandler: EventHandler<unknown>;
    priority: number;
}
/**
 * Registers an event handler configuration
 * Stores the configuration in the internal map sorted by priority
 * Lower priority values execute first
 *
 * @param config - The event subscription configuration to register
 * @template T - The type of the event object
 */
export declare function subscribe(config: EventSubscribeConfig<unknown>): void;
/**
 * Triggers all registered event handlers for a specific event
 * Executes handlers in priority order (lower priority first)
 *
 * @param eventName - The name of the event to trigger
 * @param event - The event object to pass to handlers
 * @template T - The type of the event object
 */
export declare function onEvent<T>(eventName: string, event: T): void;
