/** * Copyright 2017-2020 Plexus Interop Deutsche Bank AG * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { GenericClientApi } from './GenericClientApi'; import { TransportConnection, UniqueId } from '@plexus-interop/transport-common'; import { ClientConnectRequest } from '@plexus-interop/client-api'; import { Logger } from '@plexus-interop/common'; import { InvocationHandlersRegistry } from './handlers/InvocationHandlersRegistry'; import { BidiStreamingInvocationHandler } from './handlers/streaming/BidiStreamingInvocationHandler'; import { ServerStreamingInvocationHandler } from './handlers/streaming/ServerStreamingInvocationHandler'; import { UnaryInvocationHandler } from './handlers/unary/UnaryInvocationHandler'; import { InternalGenericClientApi } from './internal/InternalGenericClientApi'; import { BinaryMarshallerProvider } from '@plexus-interop/io'; export declare class GenericClientApiBuilder { protected marshallerProvider: BinaryMarshallerProvider; protected log: Logger; protected applicationId: string; protected applicationInstanceId?: UniqueId; protected handlersRegistry: InvocationHandlersRegistry; protected transportConnectionProvider: () => Promise; protected clientApiDecorator: (client: InternalGenericClientApi) => Promise; private onDisconnect?; constructor(marshallerProvider?: BinaryMarshallerProvider); withClientApiDecorator(clientApiDecorator: (client: InternalGenericClientApi) => Promise): GenericClientApiBuilder; withApplicationId(appId: string): GenericClientApiBuilder; withAppInstanceId(instanceId: UniqueId): GenericClientApiBuilder; withClientDetails(clientId: ClientConnectRequest): GenericClientApiBuilder; withBidiStreamingHandler(handler: BidiStreamingInvocationHandler): GenericClientApiBuilder; withTypeAwareBidiStreamingHandler(handler: BidiStreamingInvocationHandler, requestType: any, responseType: any): GenericClientApiBuilder; withServerStreamingHandler(handler: ServerStreamingInvocationHandler): GenericClientApiBuilder; withTypeAwareServerStreamingHandler(handler: ServerStreamingInvocationHandler, requestType: any, responseType: any): GenericClientApiBuilder; withUnaryHandler(handler: UnaryInvocationHandler): GenericClientApiBuilder; withTypeAwareUnaryHandler(handler: UnaryInvocationHandler, requestType: any, responseType: any): GenericClientApiBuilder; withTransportConnectionProvider(provider: () => Promise): GenericClientApiBuilder; withDisconnectCallback(onDisconnect: () => Promise): void; connect(): Promise; private validateState; }