import { Application, Express } from 'express'; import { PoolConfig } from 'pg'; import { DbLogger, DbShutdownActions, EnvOwnerPgPool, LabelledPgPool, LoginPgPool, OwnerPgPool } from '../common'; /** * Creates a PostgreSQL Pool for a given connection string, and returns it. * * @param connectionString * @param poolLabel * @param logger * @param shutdownActions * @param poolConfig * @returns */ export declare const createPgPool: (connectionString: string, poolLabel: T, logger: DbLogger, shutdownActions: DbShutdownActions, poolConfig?: PoolConfig) => LabelledPgPool; /** * Returns the previously set up PostgreSQL pool for the database owner. The owner pool has full access to the database. * @param app express app */ export declare const getOwnerPgPool: (app: Express | Application) => OwnerPgPool; /** * Sets a given pool as the Owner Pool for an Express Application * @param app * @param ownerPool */ export declare const setOwnerPgPool: (app: Application, ownerPool: OwnerPgPool) => void; /** * Returns the previously set up PostgreSQL pool for the environment owner. The environment owner cannot bypass Row Level Security and database requests will only operate on specific tenant and environment rows. * @param app express app */ export declare const getEnvOwnerPgPool: (app: Express | Application) => EnvOwnerPgPool; /** * Sets a given pool as the Environment Owner Pool for an Express Application * @param app * @param envOwnerPool */ export declare const setEnvOwnerPgPool: (app: Application, envOwnerPool: EnvOwnerPgPool) => void; /** * Returns the previously set up PostgreSQL pool for the login user. The login pool is internally used by postgraphile to access the database via GraphQL API endpoints. * @param app express app */ export declare const getLoginPgPool: (app: Express | Application) => LoginPgPool; /** * Sets a given pool as the Login Pool for an Express Application * @param app * @param loginPool */ export declare const setLoginPgPool: (app: Application, loginPool: LoginPgPool) => void; /** * Sets up a PostgreSQL pool for the owner to be reused by other app components. The owner pool has full access to the database. * @param app express app * @param connectionString full database connection string * @param logger logger to log errors and shutdown action messages * @param shutdownActions shutdown actions middleware * @param poolConfig optional pool configuration object */ export declare const setupOwnerPgPool: (app: Express | Application, connectionString: string, logger: DbLogger, shutdownActions: DbShutdownActions, poolConfig?: PoolConfig) => OwnerPgPool; /** * Sets up a PostgreSQL pool for the environment owner to be reused by other app components. The environment owner cannot bypass Row Level Security and database requests will only operate on specific tenant and environment rows. * @param app express app * @param connectionString full database connection string * @param logger logger to log errors and shutdown action messages * @param shutdownActions shutdown actions middleware * @param poolConfig optional pool configuration object */ export declare const setupEnvOwnerPgPool: (app: Express | Application, connectionString: string, logger: DbLogger, shutdownActions: DbShutdownActions, poolConfig?: PoolConfig) => EnvOwnerPgPool; /** * Sets up a PostgreSQL pool for the login user to be reused by other app components. The login pool is internally used by postgraphile to access the database via GraphQL API endpoints. * @param app express app * @param connectionString full database connection string * @param logger logger to log errors and shutdown action messages * @param shutdownActions shutdown actions middleware * @param poolConfig optional pool configuration object */ export declare const setupLoginPgPool: (app: Express | Application, connectionString: string, logger: DbLogger, shutdownActions: DbShutdownActions, poolConfig?: PoolConfig) => LoginPgPool; /** * Sets up a PostgreSQL pool for the owner to be reused by other app components. The owner pool has full access to the database. * @param connectionString full database connection string * @param logger logger to log errors and shutdown action messages * @param shutdownActions shutdown actions middleware * @param poolConfig optional pool configuration object */ export declare const createOwnerPgPool: (connectionString: string, logger: DbLogger, shutdownActions: DbShutdownActions, poolConfig?: PoolConfig) => OwnerPgPool; /** * Sets up a PostgreSQL pool for the environment owner. The environment owner cannot bypass Row Level Security and database requests will only operate on specific tenant and environment rows. * @param connectionString full database connection string * @param logger logger to log errors and shutdown action messages * @param shutdownActions shutdown actions middleware * @param poolConfig optional pool configuration object */ export declare const createEnvOwnerPgPool: (connectionString: string, logger: DbLogger, shutdownActions: DbShutdownActions, poolConfig?: PoolConfig) => EnvOwnerPgPool; /** * Sets up a PostgreSQL pool for the login user. The login pool is internally used by postgraphile to access the database via GraphQL API endpoints. * @param connectionString full database connection string * @param logger logger to log errors and shutdown action messages * @param shutdownActions shutdown actions middleware * @param poolConfig optional pool configuration object */ export declare const createLoginPgPool: (connectionString: string, logger: DbLogger, shutdownActions: DbShutdownActions, poolConfig?: PoolConfig) => LoginPgPool; //# sourceMappingURL=pg-pool.middleware.d.ts.map