import sails from "@42pub/typed-sails"; import { Config } from "@webresto/core/interfaces/Config"; import AwaitEmitter from "@webresto/core/libs/AwaitEmitter"; import BonusProgram from "@webresto/core/models/BonusProgram"; import PaymentMethod from "@webresto/core/models/PaymentMethod"; import Order from "@webresto/core/models/Order"; type sailsConfig = typeof sails.config; declare global { const emitter: AwaitEmitter; const NotificationManager: typeof import("@webresto/core/libs/NotificationManager").NotificationManager; const Adapter: typeof import("@webresto/core/adapters").Adapter; export interface Sails extends sails.Sails { on: any; emit: any; router: any; hooks: any; models: any; config: _sailsConfig; log: any; after: any; graphql: any; } interface _sailsConfig extends sailsConfig { restocore: Config; [key: string]: any | object; } export const sails: Sails; type ReqType = sails.Request; type ResType = sails.Response; type PropType = TObj[TProp]; } declare global { interface IAwaitEmitter { [key: `graphql-query-${string}`]: [any]; [key: `http-api:before-send-${string}`]: [any]; 'graphql-return-payment-method': [string, PaymentMethod[]]; "http-api:create-newcart": [Order]; "http-api:init-newcart": [Order]; "http-api:before-response-order-update": [Order]; /** * В данном случае надо указывать PopulatedOrder */ "http-api:before-response-order-set-dish-comment": [Order]; "http-api:before-response-order-set-dish-amount": [Order]; "http-api:before-response-order-remove-dish": [Order]; "http-api:before-response-order-replace-dish": [Order]; "http-api:before-response-order-add-dish": [Order]; "http-api:before-response-order": [Order]; "graphql-return-bonus-program": [string, BonusProgram[]]; "send-message": [{ orderId: string; message: any; }]; } } export {};