/// <reference lib="deno.ns" />

declare module 'https://deno.land/std@*/http/server.ts' {
  export function serve(handler: (req: Request) => Response | Promise<Response>, options?: { port?: number }): void;
}

declare module 'https://deno.land/std@0.168.0/http/server.ts' {
  export function serve(handler: (req: Request) => Response | Promise<Response>, options?: { port?: number }): void;
}

declare module 'https://deno.land/std@0.190.0/http/server.ts' {
  export function serve(handler: (req: Request) => Response | Promise<Response>, options?: { port?: number }): void;
}

declare module 'https://esm.sh/@supabase/supabase-js@2' {
  export * from '@supabase/supabase-js';
}

declare module 'https://esm.sh/@supabase/supabase-js@2.57.4' {
  export * from '@supabase/supabase-js';
}

declare module 'npm:@novu/api@1.6.0' {
  export * from '@novu/api';
}

declare namespace Deno {
  export namespace env {
    export function get(key: string): string | undefined;
  }
  
  export function serve(
    handler: (req: Request) => Response | Promise<Response>,
    options?: { port?: number; hostname?: string }
  ): void;
}
