export type SignalHandlerFlags = number;
export namespace SignalHandlerFlags {
    let RemoveAfterExecution: number;
}
/**
 * Represents a handler for signals in the event system.
 *
 * Used to encapsulate callback functions along with their execution context and provide flag-based behavior control.
 * They can be organized into linked lists using the `next` property to form a chain of handlers.
 *
 * @see Signal
 */
export class SignalHandler {
    /**
     *
     * @param {function} handle
     * @param {*} [context]
     */
    constructor(handle: Function, context?: any);
    /**
     * Optional field. Used for forming linked lists of handlers
     * @type {SignalHandler|null}
     */
    next: SignalHandler | null;
    /**
     * @private
     * @type {number|SignalHandlerFlags}
     */
    private flags;
    /**
     * Used to determine if the handler was added mid-dispatch
     * @type {number}
     */
    generation: number;
    handle: Function;
    context: any;
    /**
     *
     * @param {number|SignalHandlerFlags} flag
     * @returns {void}
     */
    setFlag(flag: number | SignalHandlerFlags): void;
    /**
     *
     * @param {number|SignalHandlerFlags} flag
     * @returns {void}
     */
    clearFlag(flag: number | SignalHandlerFlags): void;
    /**
     *
     * @param {number|SignalHandlerFlags} flag
     * @param {boolean} value
     */
    writeFlag(flag: number | SignalHandlerFlags, value: boolean): void;
    /**
     *
     * @param {number|SignalHandlerFlags} flag
     * @returns {boolean}
     */
    getFlag(flag: number | SignalHandlerFlags): boolean;
    /**
     * @readonly
     * @type {boolean}
     */
    readonly isSignalHandler: boolean;
}
//# sourceMappingURL=SignalHandler.d.ts.map