/**
* Copyright (c) 2017-present, RobotlegsJS. All Rights Reserved.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
export declare const ISlot: unique symbol;
/**
* The ISlot interface defines the basic properties of a
* listener associated with a Signal.
*
* @author Joa Ebert
* @author Robert Penner
*/
export interface ISlot {
/**
* The listener associated with this slot.
*/
listener: Function;
/**
* Allows the ISlot to inject parameters when dispatching. The params will be at
* the tail of the arguments and the ISignal arguments will be at the head.
*
* var signal:ISignal = new Signal(String);
* signal.add(handler).params = [42];
* signal.dispatch('The Answer');
* function handler(name:String, num:int):void{}
*/
params: any[];
/**
* Whether this slot is automatically removed after it has been used once.
*/
once: boolean;
/**
* The priority of this slot should be given in the execution order.
* An IPrioritySignal will call higher numbers before lower ones.
* Defaults to 0.
*/
priority: number;
/**
* Whether the listener is called on execution. Defaults to true.
*/
enabled: boolean;
/**
* Executes a listener without arguments.
* Existing params are appended before the listener is called.
*/
execute0(): void;
/**
* Dispatches one argument to a listener.
* Existing params are appended before the listener is called.
*
* @param value The argument for the listener.
*/
execute1(value: any): void;
/**
* Executes a listener of arity n where n is
* valueObjects.length.
* Existing params are appended before the listener is called.
*
* @param valueObjects The array of arguments to be applied to the listener.
*/
execute(valueObjects: any[]): void;
/**
* Removes the slot from its signal.
*/
remove(): void;
}