/** * Method decorator to debounce a method call, ensuring that the function is not called more than once * within the specified delay. This is suitable for rate-limiting execution of handlers on * events that trigger very frequently such as window resize, scroll, or key press events in web applications. * * This version of debounce is designed to handle both synchronous and asynchronous methods uniformly and includes * comprehensive error handling to provide clear diagnostics. * * @param delay The number of milliseconds to delay; if zero or unspecified, a default of 300ms is used. The delay cannot be negative. * @returns MethodDecorator */ export declare function Debounce(delay?: number): (originalMethod: Function, context: ClassMethodDecoratorContext) => (this: any, ...args: any[]) => Promise;