/* Minimal external module shims for static analysis. Keep these permissive. */

declare module 'fastify' {
  const Fastify: any;
  export type FastifyInstance = any;
  export default Fastify;
}

declare module '@apollo/server' {
  export class ApolloServer<T = any> {
    constructor(options?: any);
    start?(): Promise<void>;
    stop?(): Promise<void>;
  }
}

declare module '@as-integrations/fastify' {
  const fastifyApollo: any;
  export default fastifyApollo;
  export const fastifyApolloDrainPlugin: any;
}

declare module '@apollo/server-plugin-landing-page-local-default' {
  export const ApolloServerPluginLandingPageLocalDefault: any;
}

declare module '@graphql-tools/schema' {
  export function makeExecutableSchema(...args: any[]): any;
}

declare module '@permitio/permit-node' {
  export class Permit { constructor(opts?: any); check(...args: any[]): Promise<any>; }
}

declare module '@fastify/cors';
declare module '@fastify/helmet';

declare var process: any;
