declare module "pg" {
  export class Pool {
    constructor(config?: {
      connectionString?: string;
      max?: number;
      ssl?: { rejectUnauthorized?: boolean };
    });

    query<Row extends Record<string, unknown> = Record<string, unknown>>(
      text: string,
      values?: unknown[],
    ): Promise<{
      rows: Row[];
      rowCount: number | null;
    }>;

    connect(): Promise<{
      query<Row extends Record<string, unknown> = Record<string, unknown>>(
        text: string,
        values?: unknown[],
      ): Promise<{
        rows: Row[];
        rowCount: number | null;
      }>;
      release(): void;
    }>;
  }

  const pg: {
    Pool: typeof Pool;
  };

  export default pg;
  export { Pool };
}
