import type { Camera } from 'three/webgpu';
import type { Display } from './display/Display.js';
import type { DisplayEventProps } from './display/types.js';
import type { IStage } from './stage/IStage.js';
import type { StageRenderer } from './stage/StageRenderer.js';
export declare const OnDisplayResize = "resize";
export declare const OnDisplayRenderFrame = "renderFrame";
export declare const OnDisplayInit = "init";
export declare const OnDisplayStart = "start";
export declare const OnDisplayRestart = "restart";
export declare const OnDisplayPause = "pause";
export declare const OnDisplayDispose = "dispose";
export interface IOnDisplayResize {
    [OnDisplayResize](props: DisplayEventProps): void;
}
export interface IOnDisplayRenderFrame {
    [OnDisplayRenderFrame](props: DisplayEventProps): void;
}
export interface IOnDisplayInit {
    [OnDisplayInit](props: DisplayEventProps): void;
}
export interface IOnDisplayStart {
    [OnDisplayStart](props: DisplayEventProps): void;
}
export interface IOnDisplayRestart {
    [OnDisplayRestart](props: DisplayEventProps): void;
}
export interface IOnDisplayPause {
    [OnDisplayPause](props: DisplayEventProps): void;
}
export interface IOnDisplayDispose {
    [OnDisplayDispose](display: Display): void;
}
export declare const OnStageAdded = "stageAdded";
export declare const OnStageRemoved = "stageRemoved";
export interface StageAddedProps {
    stage: IStage;
    renderer: StageRenderer;
}
export interface StageRemovedProps {
    stage: IStage;
    renderer: StageRenderer;
}
export interface IStageAdded {
    [OnStageAdded](props: StageAddedProps): void;
}
export interface IStageRemoved {
    [OnStageRemoved](props: StageRemovedProps): void;
}
export declare const OnStageResize = "stageResize";
export interface StageResizeProps {
    width: number;
    height: number;
    stage: IStage;
}
export interface IStageResize {
    [OnStageResize](props: StageResizeProps): void;
}
export declare const OnStageUpdateFrame = "stageUpdateFrame";
export declare const OnStageFirstFrame = "stageFirstFrame";
export interface StageUpdateFrameProps {
    stage: IStage;
    now: number;
    deltaTime: number;
    frameNo: number;
}
export interface IStageFirstFrame {
    [OnStageFirstFrame](props: StageUpdateFrameProps): void;
}
export interface IStageUpdateFrame {
    [OnStageUpdateFrame](props: StageUpdateFrameProps): void;
}
export declare const OnStageAfterCameraChanged = "stageAfterCameraChanged";
export type StageAfterCameraChangedArgs = [stage: IStage, prevCamera: Camera | undefined];
export interface IStageAfterCameraChanged {
    [OnStageAfterCameraChanged](...args: StageAfterCameraChangedArgs): void;
}
export declare const OnAddToParent = "addToParent";
export declare const OnRemoveFromParent = "removeFromParent";
export interface IAddToParent {
    [OnAddToParent](): void;
}
export interface IRemoveFromParent {
    [OnRemoveFromParent](): void;
}
//# sourceMappingURL=events.d.ts.map