import { IListenerOptions } from "./IListenerOptions";
import { ListenerEnvironment } from "./ListenerEnvironment";
/**
 * Represents a component which listens to specific events.
 */
export declare abstract class Listener {
    /**
     * The name of the listener.
     */
    private name;
    /**
     * The environment to install the listener to.
     */
    private environment;
    /**
     * The name of the event to listen to.
     */
    private eventName;
    /**
     * A number indicating the execution order of the event-listener.
     */
    private executionOrder;
    /**
     * The permissions of which the active user must have at least one in order to execute the listener.
     */
    private permissions;
    /**
     * The options of which at least one must be enabled in order to execute the listener.
     */
    private options;
    /**
     * Initializes a new instance of the `Listener` class.
     */
    constructor(options: IListenerOptions);
    /**
     * Gets or sets the name of the listener.
     */
    Name: string;
    /**
     * Gets or sets the environment to install the listener to.
     */
    Environment: ListenerEnvironment;
    /**
     * Gets or sets the name of the event to listen to.
     */
    EventName: string;
    /**
     * Gets or sets a number indicating the execution order of the event-listener.
     */
    ExecutionOrder: number;
    /**
     * Gets the permissions of which the active user must have at least one in order to execute the listener.
     */
    readonly Permissions: string[];
    /**
     * Gets the options of which at least one must be enabled in order to execute the listener.
     */
    readonly Options: string[];
}
