import type { Stripe } from "@cocalc/server/stripe/client" ; import { EventEmitter } from "events" ; import { Changes } from "./changefeed" ; import { Client } from "pg" ; export type QuerySelect = object ; export type QueryWhere = { [ field ] : any ; } | { [ field ] : any ; } [ ] | string | string [ ] ; export interface QueryOptions { select ? : string | string [ ] ; table ? : string ; where ? : QueryWhere ; query ? : string ; set ? : { [ key ] : any ; } ; params ? : any [ ] ; values ? : { [ key ] : any ; } ; order_by ? : string ; jsonb_set ? : object ; jsonb_merge ? : object ; cache ? : boolean ; retry_until_success ? : any ; offset ? : number ; limit ? : number ; timeout_s ? : number ; cb ? : Function ; } export interface AsyncQueryOptions extends Omit < QueryOptions , "cb" > { } export type QueryResult = { [ key ] : any ; } ; type CB = ( err : string | Error , result : any ) => any ; export interface ChangefeedOptions { table : string ; select : { [ field ] : any ; } ; where : QueryWhere ; watch : string [ ] ; cb : CB ; } export interface PostgreSQL extends EventEmitter { _dbg ( desc ) : Function ; _stop_listening ( table , select , watch ) ; _query ( opts ) : void ; _client ( ) : Client | undefined ; _clients : Client [ ] | undefined ; is_standby : boolean ; get_site_settings ( opts ) : void ; async_query ( opts ) : Promise < any > ; _listen ( table , select , watch , cb ) : void ; changefeed ( opts ) : Changes ; account_ids_to_usernames ( opts ) : void ; get_project ( opts ) : void ; get_account ( opts ) : void ; add_user_to_project ( opts ) : void ; user_is_in_project_group ( opts ) : void ; user_is_collaborator ( opts ) ; get_user_column ( column , account_id , cb ) ; _get_project_column ( column , project_id , cb ) ; do_account_creation_actions ( opts ) : void ; mark_account_deleted ( opts ) : void ; count_accounts_created_by ( opts ) : void ; account_exists ( opts ) : void ; is_banned_user ( opts ) : void ; get_server_setting ( opts ) : void ; get_server_settings_cached ( opts ) : void ; set_server_setting ( opts ) : void ; server_settings_synctable ( ) : any ; create_account ( opts ) : void ; make_user_admin ( opts ) ; log ( opts ) : void ; user_is_in_group ( opts ) : void ; sha1 ( ... args ) : string ; get_project_ids_with_user ( opts ) : void ; get_remember_me ( opts ) ; save_remember_me ( opts ) ; passport_exists ( opts ) ; create_passport ( opts ) ; get_passport_settings ( opts ) ; get_all_passport_settings ( opts ) ; get_all_passport_settings_cached ( opts ) ; change_password ( opts ) ; verify_email_check_token ( opts ) ; reset_server_settings_cache ( ) : void ; stripe_update_customer ( opts ) : void ; sync_site_license_subscriptions ( account_id ? ) : Promise < number > ; get_stripe_customer_id ( opts ) : void ; set_stripe_customer_id ( opts ) : void ; update_coupon_history ( opts ) : void ; get_coupon_history ( opts ) : void ; get_user_project_upgrades ( opts ) : void ; remove_all_user_project_upgrades ( opts ) : void ; _concurrent_warn : number ; concurrent ( ) : number ; register_hub ( opts ) : void ; synctable ( opts ) ; projects_that_need_to_be_started ( ) : Promise < string [ ] > ; is_connected ( ) : boolean ; }