/**
 * A unique string identifier representing an event.
 * This is expected to be a URI, where initial parts are often the id of the plugin whose package defines the event.
 *
 * @example dxos.org/plugin/example/event/ready
 */
export type ActivationEvent = {
    id: string;
    specifier?: string;
};
/**
 * An activation event that can be a single event, or a combination of events.
 */
export type Events = ActivationEvent | {
    type: 'one-of';
    events: ActivationEvent[];
} | {
    type: 'all-of';
    events: ActivationEvent[];
};
/**
 * Helper to define an activation event.
 */
export declare const make: (id: string, specifier?: string) => ActivationEvent;
/**
 * Helper to create an activation event key.
 */
export declare const eventKey: (event: ActivationEvent) => string;
/**
 * Helper to create an activation event that triggers when any of the given events are activated.
 */
export declare const oneOf: (...events: ActivationEvent[]) => {
    type: "one-of";
    events: ActivationEvent[];
};
/**
 * Helper to create an activation event that triggers when all of the given events are activated.
 */
export declare const allOf: (...events: ActivationEvent[]) => {
    type: "all-of";
    events: ActivationEvent[];
};
/**
 * Helper to check if an activation event is a one-of event.
 */
export declare const isOneOf: (events: Events) => events is {
    type: "one-of";
    events: ActivationEvent[];
};
/**
 * Helper to check if an activation event is an all-of event.
 */
export declare const isAllOf: (events: Events) => events is {
    type: "all-of";
    events: ActivationEvent[];
};
/**
 * Helper to get the events from an activation event.
 */
export declare const getEvents: (events: Events) => ActivationEvent[];
//# sourceMappingURL=activation-event.d.ts.map