///
declare namespace Cloudflare {
interface Env {
PUBLISHER_MEDIA?: import("@/lib/publisher/server").MediaBucket;
ACTIVITY_CACHE?: import("@/lib/activity").ActivityCacheStore;
ACTIVITY_STORE?: import("@/lib/activity/durable").ActivityDurableNamespace;
ACTIVITY_STORE_MODE?: string;
LIVE_VISITORS?: import("@/lib/visitors/durable").VisitorNamespace;
GITHUB_ACTIVITY_TOKEN?: string;
PLUNK_SECRET_KEY?: string;
NEWSLETTER_DB?: import("@/lib/newsletter/types").NewsletterDB;
NEWSLETTER_TOKEN_SECRET?: string;
NEWSLETTER_ADMIN_SECRET?: string;
NEWSLETTER_WEBHOOK_SECRET?: string;
NEWSLETTER_DISCORD_WEBHOOK_URL?: string;
NEWSLETTER_ORIGIN?: string;
PARAGRAPH_API_KEY?: string;
PARAGRAPH_PUBLICATION_SLUG?: string;
ANTHROPIC_API_KEY?: string;
ANTHROPIC_MODEL?: string;
}
}
declare module "cloudflare:workers" {
export const env: Cloudflare.Env;
export function waitUntil(work: Promise): void;
}
// the adapter puts the Worker's ExecutionContext on locals, which is what lets
// a page hand work to `waitUntil` and answer before that work finishes
type CloudflareRuntime = import("@astrojs/cloudflare").Runtime;
declare namespace App {
// biome-ignore lint/suspicious/noEmptyInterface: declaration merging needs an interface, not an alias
interface Locals extends CloudflareRuntime {}
}
interface ImportMetaEnv {
readonly FLOW_ID_HOST?: string;
readonly FLOW_ID_API_URL?: string;
readonly PARAGRAPH_API_KEY?: string;
readonly PARAGRAPH_PUBLICATION_SLUG?: string;
}
interface ImportMeta {
readonly env: ImportMetaEnv;
}
declare module "ffprobe-static" {
const binary: { path: string };
export default binary;
}