import type { ExtractDependencyType, TokenInterface } from '@tinkoff/dippy'; import { type Container } from '@tinkoff/dippy'; import type { CHILD_APP_DI_MANAGER_TOKEN, Contract, HOST_PROVIDED_CONTRACTS, HOST_REQUIRED_CONTRACTS, ChildAppContractManager as IChildAppContractManager } from '@tramvai/tokens-child-app'; import type { LOGGER_TOKEN } from '@tramvai/tokens-common'; export type HostProvidedContracts = ExtractDependencyType; export type HostRequiredContracts = ExtractDependencyType; export type ChildAppDiManager = ExtractDependencyType; export type Logger = ExtractDependencyType; export declare abstract class BaseChildAppContractManager implements IChildAppContractManager { protected appDi: Container; protected hostProvidedContracts: HostProvidedContracts; protected hostRequiredContracts: HostRequiredContracts; protected log: ReturnType; constructor({ appDi, hostProvidedContracts, hostRequiredContracts, logger, }: { appDi: Container; hostProvidedContracts: HostProvidedContracts | null; hostRequiredContracts: HostRequiredContracts | null; logger: Logger; }); protected abstract registerContract(childDi: Container, contract: Contract): void; protected abstract getRequestHostDi(): Container | null; protected abstract getRequestChildDiManager(): ChildAppDiManager | null; registerChildContracts(childDi: Container): void; validateChildProvidedContracts(childDi: Container): void; getChildProvidedContract>(childAppName: string, contract: T): Promise | null>; private getChildDi; /** * Pass DI here when we can't resolve it from Child DI manager without cycle * - `Container` is used in case when `validateChildProvidedContracts` call this method * - `string` is used in case when `getChildProvidedContract` call this method */ private getChildProvidedContracts; private getHostProvidedContracts; private getHostRequiredContracts; } //# sourceMappingURL=contractManager.base.d.ts.map