Next.js website for Rocky Mountain Vending company featuring: - Product catalog with Stripe integration - Service areas and parts pages - Admin dashboard with Clerk authentication - SEO optimized pages with JSON-LD structured data Co-authored-by: Cursor <cursoragent@cursor.com>
89 lines
2.5 KiB
Text
89 lines
2.5 KiB
Text
/// <reference types="node" />
|
|
|
|
// Extend the NodeJS namespace with Next.js-defined properties
|
|
declare namespace NodeJS {
|
|
// only for rust, see https://github.com/napi-rs/napi-rs/issues/1630
|
|
interface TTY {
|
|
setBlocking(blocking: boolean): void
|
|
}
|
|
|
|
interface WriteStream {
|
|
_handle?: TTY
|
|
}
|
|
|
|
interface Process {
|
|
/**
|
|
* @deprecated Use `typeof window` instead
|
|
*/
|
|
readonly browser: boolean
|
|
}
|
|
|
|
interface ProcessEnv {
|
|
// TODO: Should be optional and possibly undefined
|
|
readonly NODE_ENV: 'development' | 'production' | 'test'
|
|
}
|
|
}
|
|
|
|
declare module '*.module.css' {
|
|
const classes: { readonly [key: string]: string }
|
|
export default classes
|
|
}
|
|
|
|
declare module '*.module.sass' {
|
|
const classes: { readonly [key: string]: string }
|
|
export default classes
|
|
}
|
|
|
|
declare module '*.module.scss' {
|
|
const classes: { readonly [key: string]: string }
|
|
export default classes
|
|
}
|
|
|
|
// We implement the behavior of `import 'server-only'` and `import 'client-only'` on the compiler level
|
|
// and thus don't require having them installed as dependencies.
|
|
// By default it works fine with typescript, because (surprisingly) TSC *doesn't check side-effecting imports*.
|
|
// But this behavior can be overridden with `noUncheckedSideEffectImports`
|
|
// (https://www.typescriptlang.org/tsconfig/#noUncheckedSideEffectImports)
|
|
// which'd cause `import 'server-only'` to start erroring.
|
|
// To prevent that, we add declarations for them here.
|
|
|
|
declare module 'server-only' {
|
|
/**
|
|
* `import 'server-only'` marks your module as only usable on the server
|
|
* and prevents it from being used on the client.
|
|
* Read more: https://nextjs.org/docs/app/getting-started/server-and-client-components#preventing-environment-poisoning
|
|
*/
|
|
}
|
|
|
|
declare module 'client-only' {
|
|
/**
|
|
* `import 'client-only'` marks your module as only usable on the client
|
|
* and prevents it from being used on the server.
|
|
* Read more: https://nextjs.org/docs/app/getting-started/server-and-client-components#preventing-environment-poisoning
|
|
*/
|
|
}
|
|
|
|
interface Window {
|
|
MSInputMethodContext?: unknown
|
|
/** @internal */
|
|
__NEXT_HMR_CB?: null | ((message?: string) => void)
|
|
/** @internal */
|
|
__next_root_layout_missing_tags?: ('html' | 'body')[]
|
|
/** @internal */
|
|
__NEXT_DEV_INDICATOR_POSITION?:
|
|
| 'top-left'
|
|
| 'top-right'
|
|
| 'bottom-left'
|
|
| 'bottom-right'
|
|
}
|
|
|
|
interface NextFetchRequestConfig {
|
|
revalidate?: number | false
|
|
tags?: string[]
|
|
}
|
|
|
|
interface RequestInit {
|
|
next?: NextFetchRequestConfig | undefined
|
|
}
|
|
|
|
declare var _N_E_STYLE_LOAD: (href: string) => Promise<void>
|