/// /// declare module 'framer-motion' { import type { ComponentType } from 'react'; // Minimal shim to satisfy strict typing for usage in JSX export type MotionComponent = ComponentType>; export const motion: { div: MotionComponent; span: MotionComponent; button: MotionComponent; svg: MotionComponent; p: MotionComponent; [element: string]: MotionComponent; }; export const AnimatePresence: ComponentType>; export function useReducedMotion(): boolean; // Shim motion values with a minimal interface exposing .set() export interface MotionValue { get(): T; set(v: T): void; } export function useMotionValue(initial: number): MotionValue; export function useSpring(value: MotionValue | number, config?: Record): MotionValue; export function useTransform( value: MotionValue, transformer: (input: TInput) => TOutput, ): MotionValue; } declare module '@next/third-party-devtools' { import type { ComponentType } from 'react'; const Devtools: ComponentType>; export default Devtools; } declare module 'react/compiler-runtime' { export {}; } declare global { namespace NodeJS { interface ProcessEnv { NODE_ENV?: 'development' | 'production' | 'test'; // Website (public, exposed to browser) NEXT_PUBLIC_GRIDPILOT_MODE?: 'pre-launch' | 'alpha'; NEXT_PUBLIC_SITE_URL?: string; NEXT_PUBLIC_API_BASE_URL?: string; NEXT_PUBLIC_SITE_NAME?: string; NEXT_PUBLIC_SUPPORT_EMAIL?: string; NEXT_PUBLIC_SPONSOR_EMAIL?: string; NEXT_PUBLIC_LEGAL_COMPANY_NAME?: string; NEXT_PUBLIC_LEGAL_VAT_ID?: string; NEXT_PUBLIC_LEGAL_REGISTERED_COUNTRY?: string; NEXT_PUBLIC_LEGAL_REGISTERED_ADDRESS?: string; NEXT_PUBLIC_DISCORD_URL?: string; NEXT_PUBLIC_X_URL?: string; NEXT_TELEMETRY_DISABLED?: string; // Website (server-only) API_BASE_URL?: string; FEATURE_FLAGS?: string; // Vercel KV (server-only) KV_REST_API_URL?: string; KV_REST_API_TOKEN?: string; // Build/CI toggles (server-only) CI?: string; DOCKER?: string; } } } export {};