import { Injector } from '@angular/core'; import { BehaviorSubject, Observable } from 'rxjs'; import { Action, CaptchaJob, CaptchaJobPayload, InputLocation, LoginPayload, Message, OTPRequestPayload, OTPResponse, RegistrationPayload, Response, RestorePasswordPayload, UpdateUserDataPayload, User, UserResponse, ValuesOrBoolean } from '../models'; import { NgGqlStoreService } from './ng-gql-storage.service'; import * as i0 from "@angular/core"; export type UserBusEventType = 'OTPRequest' | 'login' | 'UpdateUserData' | 'RestorePassword' | 'AddDishFavor' | 'captchaGetJob' | 'registrationApp' | 'logout' | 'userDelete' | 'locationCreate' | 'locationDelete' | 'locationSetIsDefault'; /** @private */ type UserBusEventMixin = { type: T; payload: P; successCb: (result: R) => void; }; export type UserBusEvent = { /** Пользовательский callback, будет который дополнительно выполнен в случае успешной операции */ errorCb: (err: unknown) => void; /** BehaviorSubject, отслеживающий состояние выполняемого действия. */ loading?: BehaviorSubject; } & (UserBusEventMixin<'captchaGetJob', CaptchaJobPayload, CaptchaJob> | UserBusEventMixin<'registrationApp', RegistrationPayload, UserResponse> | UserBusEventMixin<'OTPRequest', OTPRequestPayload, OTPResponse> | UserBusEventMixin<'login', LoginPayload, UserResponse> | UserBusEventMixin<'UpdateUserData', UpdateUserDataPayload, UserResponse> | UserBusEventMixin<'RestorePassword', RestorePasswordPayload, UserResponse> | UserBusEventMixin<'AddDishFavor', string, boolean> | UserBusEventMixin<'logout', null, Response> | UserBusEventMixin<'userDelete', string, Response> | UserBusEventMixin<'locationCreate', InputLocation, boolean> | UserBusEventMixin<'locationDelete', string, boolean> | UserBusEventMixin<'locationSetIsDefault', string, boolean>); /** * Отсюда выполняются запросы к API через шину событий. * Сервис NgGqlUserService содержит методы для отправки событий каждого вида в отдельности, * используя для этого единственный универсальный метод сервиса NgGqlUserBusService. */ export declare class NgGqlUserBusService { private _injector; private _storage; private _defaultActionFragments; private _defaultMessageFragments; private _defaultCaptchaGetJobFragments; private _defaultUserFragments; private _defaultOTPResponceFragments; private _userBus; readonly userBus$: Observable<(() => void) | (() => void)>; constructor(_injector: Injector, _storage: NgGqlStoreService, _defaultActionFragments: ValuesOrBoolean, _defaultMessageFragments: ValuesOrBoolean, _defaultCaptchaGetJobFragments: ValuesOrBoolean, _defaultUserFragments: ValuesOrBoolean, _defaultOTPResponceFragments: ValuesOrBoolean); private get _requestService(); emitToBus(data: { type: T; payload: P; loading?: BehaviorSubject; }): Promise; private _userServiceReducer; private _captchaGetJob$; /** Обновление данных пользователя (профиль) */ private _updateUserData$; /** Добавляет блюдо в избранное */ private _addDishFavor$; private _restorePassword$; private _login$; private _otpRequest$; private _registrationApp$; private _logout$; private _userDelete$; private _locationCreate$; private _locationDelete$; private _locationSetIsDefault$; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } export {};