58 lines
1.7 KiB
TypeScript
58 lines
1.7 KiB
TypeScript
/// <reference types="next" />
|
|
/// <reference types="next/image-types/global" />
|
|
|
|
declare module 'framer-motion' {
|
|
import type { ComponentType } from 'react';
|
|
|
|
// Minimal shim to satisfy strict typing for usage in JSX
|
|
export type MotionComponent = ComponentType<Record<string, unknown>>;
|
|
|
|
export const motion: {
|
|
div: MotionComponent;
|
|
span: MotionComponent;
|
|
button: MotionComponent;
|
|
svg: MotionComponent;
|
|
p: MotionComponent;
|
|
[element: string]: MotionComponent;
|
|
};
|
|
|
|
export const AnimatePresence: ComponentType<Record<string, unknown>>;
|
|
|
|
export function useReducedMotion(): boolean;
|
|
|
|
// Shim motion values with a minimal interface exposing .set()
|
|
export interface MotionValue<T = number> {
|
|
get(): T;
|
|
set(v: T): void;
|
|
}
|
|
|
|
export function useMotionValue(initial: number): MotionValue<number>;
|
|
export function useSpring(value: MotionValue<number> | number, config?: Record<string, unknown>): MotionValue<number>;
|
|
export function useTransform<TInput, TOutput>(
|
|
value: MotionValue<TInput>,
|
|
transformer: (input: TInput) => TOutput,
|
|
): MotionValue<TOutput>;
|
|
}
|
|
|
|
declare module '@next/third-party-devtools' {
|
|
import type { ComponentType } from 'react';
|
|
const Devtools: ComponentType<Record<string, unknown>>;
|
|
export default Devtools;
|
|
}
|
|
|
|
declare module 'react/compiler-runtime' {
|
|
export {};
|
|
}
|
|
|
|
// Shim missing React namespace member used by Next devtools types
|
|
declare namespace React {
|
|
// Minimal placeholder type; generic to match Next's usage
|
|
type ActionDispatch<T = unknown> = (action: T) => void;
|
|
}
|
|
|
|
declare namespace NodeJS {
|
|
interface ProcessEnv {
|
|
NEXT_PUBLIC_GRIDPILOT_MODE?: 'pre-launch' | 'alpha';
|
|
NEXT_PUBLIC_X_URL?: string;
|
|
}
|
|
} |