export declare const DEFAULT_CAMERA_FOLLOW_TIME = 1000; export declare const DEFAULT_CAMERA_FOLLOW_EASE = "easeInOutSine"; export declare const CAMERA_FOLLOW_EASES: readonly ["linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeInElastic", "easeOutElastic", "easeInOutElastic", "easeInBack", "easeOutBack", "easeInOutBack", "easeInBounce", "easeOutBounce", "easeInOutBounce"]; export type CameraFollowEase = typeof CAMERA_FOLLOW_EASES[number]; export type CameraFollowSmoothMoveOptions = { /** Enable or disable the smooth transition when options are sent as an object. */ enabled?: boolean; /** Duration of the transition to the new camera target, in milliseconds. */ time?: number; /** pixi-viewport easing name, for example "easeInOutQuad". */ ease?: CameraFollowEase; /** Continuous follow speed after the transition. 0 keeps the target centered instantly. */ speed?: number; /** Continuous follow acceleration after the transition. */ acceleration?: number | null; /** Center radius where the followed target can move without moving the viewport. */ radius?: number | null; }; export type CameraFollowSmoothMove = boolean | CameraFollowSmoothMoveOptions; export type CameraFollowTarget = { x: number; y: number; destroyed?: boolean; } | null | undefined; export type CameraFollowPosition = { x: number; y: number; }; export interface CameraFollowApplyContext { viewport: any; target: CameraFollowTarget; smoothMove: CameraFollowSmoothMove; followRevision: number; isCurrentRevision: (revision: number) => boolean; shouldFollowCamera: () => boolean; /** Snap the viewport translation to whole pixels when rendering. Defaults to true. */ pixelSnap?: boolean; } export type CameraFollowOwnership = { readonly viewport: object; readonly token: symbol; }; export declare const ownsCameraFollow: (ownership: CameraFollowOwnership | null) => boolean; /** * Rounds the viewport translation to whole pixels at render time only. * * Tilemap shaders ignore Pixi's `roundPixels`, so a fractional camera (interpolated follow * target, odd screen size) makes tiles land on a different sub-pixel every frame and shimmer. * `viewport.x` / `viewport.y` stay fractional, so follow, clamp and animations are not affected. */ export declare const setViewportPixelSnap: (component: any, enabled: boolean) => void; export declare const smoothMoveEnabled: (smoothMove: CameraFollowSmoothMove) => boolean; export declare const cameraFollowAnimationOptions: (smoothMove: CameraFollowSmoothMove) => { time: number; ease: "easeInOutSine" | "linear" | "easeInQuad" | "easeOutQuad" | "easeInOutQuad" | "easeInCubic" | "easeOutCubic" | "easeInOutCubic" | "easeInQuart" | "easeOutQuart" | "easeInOutQuart" | "easeInQuint" | "easeOutQuint" | "easeInOutQuint" | "easeInSine" | "easeOutSine" | "easeInExpo" | "easeOutExpo" | "easeInOutExpo" | "easeInCirc" | "easeOutCirc" | "easeInOutCirc" | "easeInElastic" | "easeOutElastic" | "easeInOutElastic" | "easeInBack" | "easeOutBack" | "easeInOutBack" | "easeInBounce" | "easeOutBounce" | "easeInOutBounce"; } | null; export declare const cameraFollowOptions: (smoothMove: CameraFollowSmoothMove) => { speed?: number; acceleration?: number | null; radius?: number | null; } | undefined; export declare const clearCameraFollowPlugins: (viewport: any, ownership?: CameraFollowOwnership | null) => boolean; export declare const ownsCameraFollowRevision: (appliedRevision: number | null, currentRevision: number) => boolean; export declare const readCameraFollowPosition: (target: CameraFollowTarget) => CameraFollowPosition | null; export declare const followCameraInstantly: (viewport: any, target: CameraFollowTarget, smoothMove: CameraFollowSmoothMove) => boolean; export declare const syncCameraFollowPosition: (viewport: any, target: CameraFollowTarget, smoothMove: CameraFollowSmoothMove) => boolean; export declare const applyCameraFollow: ({ viewport, target, smoothMove, followRevision, isCurrentRevision, shouldFollowCamera, pixelSnap, }: CameraFollowApplyContext) => CameraFollowOwnership | null;