import { EventEmitter } from '@kano/common/index.js';
import { Block } from '@kano/kwc-blockly/blockly.js';
import { Editor } from '../../editor/editor.js';
export declare class Flash {
    domNode: HTMLDivElement;
    private timeoutSub;
    constructor();
    trigger(): void;
}
/**
 * Prepends a flash field to the provided block's first input.
 * Does nothing if the provided block doesn't have any inputs
 * @param block Target block to add the flash field onto
 */
export declare function addFlashField(block: Block): void;
/**
 * Subscribe to the provided event, find all blocks listening to the event and trigger their flash field
 * @param editor The target editor
 * @param id Unique id of the target module
 * @param emitter The event emitter triggering the event to flash
 * @param method The name of the method reacting to the event
 */
export declare function setupFlash<T = void>(editor: Editor, id: string, emitter: EventEmitter<T>, method: string, shouldFlash?: (block: Block, data: T) => boolean): void;
