import { IListenerOptions } from "./IListenerOptions.js";
import { ListenerEnvironment } from "./ListenerEnvironment.js";
/**
 * 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 {@link Listener `Listener`} class.
     *
     * @param options
     * The options of the listener.
     */
    constructor(options: IListenerOptions);
    /**
     * Gets or sets the name of the listener.
     */
    get Name(): string;
    /**
     * @inheritdoc
     */
    set Name(value: string);
    /**
     * Gets or sets the environment to install the listener to.
     */
    get Environment(): ListenerEnvironment;
    /**
     * @inheritdoc
     */
    set Environment(value: ListenerEnvironment);
    /**
     * Gets or sets the name of the event to listen to.
     */
    get EventName(): string;
    /**
     * @inheritdoc
     */
    set EventName(value: string);
    /**
     * Gets or sets a number indicating the execution order of the event-listener.
     */
    get ExecutionOrder(): number;
    /**
     * @inheritdoc
     */
    set ExecutionOrder(value: number);
    /**
     * Gets the permissions of which the active user must have at least one in order to execute the listener.
     */
    get Permissions(): string[];
    /**
     * Gets the options of which at least one must be enabled in order to execute the listener.
     */
    get Options(): string[];
}
