import type { Camera, Scene } from 'three';
import type { ThreeRendererType, IStage } from './index.js';
import type { IStageRenderer, StageType } from './stage/IStageRenderer.js';
import type { Stage2D } from './stage/Stage2D.js';
export declare const StageAdded = "stageAdded";
export interface StageAddedProps {
    stage: StageType;
    renderer: IStageRenderer;
}
export interface IStageAdded {
    stageAdded(props: StageAddedProps): void;
}
export declare const StageRemoved = "stageRemoved";
export interface StageRemovedProps {
    stage: StageType;
    renderer: IStageRenderer;
}
export interface IStageRemoved {
    stageRemoved(props: StageRemovedProps): void;
}
export declare const StageResize = "stageResize";
export interface StageResizeProps {
    width: number;
    height: number;
    stage: IStage;
}
export interface Stage2DResizeProps extends StageResizeProps {
    width: number;
    height: number;
    stage: Stage2D;
}
export interface IStageResize {
    stageResize(props: StageResizeProps): void;
}
export interface IStage2DResize {
    stageResize(props: Stage2DResizeProps): void;
}
export declare const StageRenderFrame = "stageRenderFrame";
export interface StageRenderFrameProps {
    width: number;
    height: number;
    renderer: ThreeRendererType;
    now: number;
    deltaTime: number;
    frameNo: number;
    renderFrame: () => void;
}
export interface Stage2DRenderFrameProps extends StageRenderFrameProps {
    stage: Stage2D;
}
export interface IStageRenderFrame {
    stageRenderFrame(props: StageRenderFrameProps): void;
}
export interface IStage2DRenderFrame {
    stageRenderFrame(props: Stage2DRenderFrameProps): void;
}
export declare const StageAfterCameraChanged = "stageAfterCameraChanged";
export type StageAfterCameraChangedArgs = [stage: StageType, prevCamera: Camera | undefined];
export interface IStageAfterCameraChanged {
    stageAfterCameraChanged(...args: StageAfterCameraChangedArgs): void;
}
export declare const RemoveFromParent = "removeFromParent";
export interface IRemoveFromParent {
    removeFromParent(): void;
}
export declare const FirstFrame = "firstFrame";
export interface FirstFrameProps extends StageRenderFrameProps {
    scene: Scene;
}
export interface IFirstFrame {
    firstFrame(props: FirstFrameProps): void;
}
//# sourceMappingURL=events.d.ts.map