import { EventContext } from '../../../../core/event/EventContextType';
import { BaseEventNodeType } from '../../../nodes/event/_Base';
import { PolyEventName } from '../../../poly/utils/PolyEventName';
export declare class PolySceneEvent extends Event {
    constructor(type: PolyEventName);
    get type(): PolyEventName;
}
export declare const SCENE_EVENT_CREATED_EVENT_CONTEXT: EventContext<PolySceneEvent>;
export declare const SCENE_EVENT_READY_EVENT_CONTEXT: EventContext<PolySceneEvent>;
export declare const SCENE_EVENT_PLAY_EVENT_CONTEXT: EventContext<PolySceneEvent>;
export declare const SCENE_EVENT_PAUSE_EVENT_CONTEXT: EventContext<PolySceneEvent>;
export declare class SceneEventsController {
    dispatch<T extends PolyEventName>(eventContext: EventContext<PolySceneEvent>): void;
    private _observersByEventType;
    removeObserverFromAllEventTypes(eventNode: BaseEventNodeType): void;
    addObserver(eventNode: BaseEventNodeType, eventType: PolyEventName): void;
}
