import { IsaacEvent } from "./event.js";
import { IsaacEventType } from "./types.js";
export declare class EventController {
    private knownEvents;
    private localEvents;
    private remoteEvents;
    constructor();
    /**
     * Retrieves list of events
     */
    getEvents: () => Promise<IsaacEvent[]>;
    /**
     * Retrieves a single event by its externalRef or ISAAC internal ID.
     * @param identifier - The externalRef or ISAAC internal ID of the event to retrieve.
     * @param subsystemId - The ID of the subsystem to retrieve the event from. Defaults to the current subsystem ID.
     */
    getEvent: (identifier: string | number, subsystemId?: string) => Promise<IsaacEventType>;
    /**
     * Creates a new event on the remote ISAAC system.
     * @param newEvent is the definition of the event to be added
     * @returns new IsaacEvent object
     */
    createEvent(newEvent: IsaacEventType): Promise<void>;
    /**
     * Syncs local events with remote events and updates "known events" accordingly.
     */
    syncEvents: () => Promise<void>;
    /**
     * Registers an event on the remote ISAAC system if it does not exist.
     * @param newEvent is the definition of the event to be added
     * @returns new or existing IsaacEvent object.
     */
    registerEvent: (newEvent: IsaacEventType) => Promise<void>;
}
//# sourceMappingURL=index.d.ts.map