import { RelationalAdapter } from '@daita/relational'; import { HttpServerAuthorizationProvider, HttpServerAuthorizationTokenEndpoint } from '@daita/http-server'; import { UserPoolAlgorithm } from '@daita/auth'; import { RelationalOrmAdapter } from '@daita/orm'; export declare type DaitaContextConfig = DaitaHttpContextConfig | DaitaSqliteContextConfig | DaitaPostgresContextConfig; export interface BaseContextConfig { module?: string; connectionString: string; schemaLocation?: string; schemaName?: string; migrationLocation?: string; } export interface DaitaHttpContextConfig extends BaseContextConfig { options: any; authorization: undefined; } export interface DaitaSqliteContextConfig extends BaseContextConfig { options: { dropIfExists?: boolean; }; authorization: DaitaAuthorizationConfig; } export interface DaitaPostgresContextConfig extends BaseContextConfig { options: { createIfNotExists?: boolean; }; authorization: DaitaAuthorizationConfig; } export interface DaitaAuthorizationConfig { providers?: HttpServerAuthorizationProvider[]; tokenEndpoints?: HttpServerAuthorizationTokenEndpoint[]; userPools?: { [key: string]: DaitaAuthorizationIssuerConfig; }; } export interface DaitaAuthorizationIssuerConfig { users?: { [key: string]: DaitaAuthorizationIssuerUserConfig; }; cors?: string[]; roles?: { [key: string]: DaitaAuthorizationIssuerRoleConfig; }; name?: string; accessTokenExpiresIn?: number; algorithm?: UserPoolAlgorithm; allowRegistration?: boolean; checkPasswordForBreach?: boolean; emailVerifyExpiresIn?: number; refreshRefreshExpiresIn?: number; } export interface DaitaAuthorizationIssuerRoleConfig { description?: string; } export interface DaitaAuthorizationIssuerUserConfig { password: string; email?: string; emailVerified?: boolean; phone?: string; phoneVerified?: boolean; roles?: string[]; disabled?: boolean; } export declare function getContextFromConfig(options: any): RelationalAdapter & RelationalOrmAdapter;