1 | import { Metadata } from './metadata';
|
2 | import { Listener, MetadataListener, MessageListener, StatusListener, InterceptingListener, MessageContext } from './call-stream';
|
3 | import { Status } from './constants';
|
4 | import { Channel } from './channel';
|
5 | import { CallOptions } from './client';
|
6 | import { CallCredentials } from './call-credentials';
|
7 | import { ClientMethodDefinition } from './make-client';
|
8 |
|
9 |
|
10 |
|
11 |
|
12 | export declare class InterceptorConfigurationError extends Error {
|
13 | constructor(message: string);
|
14 | }
|
15 | export interface MetadataRequester {
|
16 | (metadata: Metadata, listener: InterceptingListener, next: (metadata: Metadata, listener: InterceptingListener | Listener) => void): void;
|
17 | }
|
18 | export interface MessageRequester {
|
19 | (message: any, next: (message: any) => void): void;
|
20 | }
|
21 | export interface CloseRequester {
|
22 | (next: () => void): void;
|
23 | }
|
24 | export interface CancelRequester {
|
25 | (next: () => void): void;
|
26 | }
|
27 |
|
28 |
|
29 |
|
30 | export interface FullRequester {
|
31 | start: MetadataRequester;
|
32 | sendMessage: MessageRequester;
|
33 | halfClose: CloseRequester;
|
34 | cancel: CancelRequester;
|
35 | }
|
36 | export declare type Requester = Partial<FullRequester>;
|
37 | export declare class ListenerBuilder {
|
38 | private metadata;
|
39 | private message;
|
40 | private status;
|
41 | withOnReceiveMetadata(onReceiveMetadata: MetadataListener): this;
|
42 | withOnReceiveMessage(onReceiveMessage: MessageListener): this;
|
43 | withOnReceiveStatus(onReceiveStatus: StatusListener): this;
|
44 | build(): Listener;
|
45 | }
|
46 | export declare class RequesterBuilder {
|
47 | private start;
|
48 | private message;
|
49 | private halfClose;
|
50 | private cancel;
|
51 | withStart(start: MetadataRequester): this;
|
52 | withSendMessage(sendMessage: MessageRequester): this;
|
53 | withHalfClose(halfClose: CloseRequester): this;
|
54 | withCancel(cancel: CancelRequester): this;
|
55 | build(): Requester;
|
56 | }
|
57 | export interface InterceptorOptions extends CallOptions {
|
58 | method_definition: ClientMethodDefinition<any, any>;
|
59 | }
|
60 | export interface InterceptingCallInterface {
|
61 | cancelWithStatus(status: Status, details: string): void;
|
62 | getPeer(): string;
|
63 | start(metadata: Metadata, listener?: Partial<InterceptingListener>): void;
|
64 | sendMessageWithContext(context: MessageContext, message: any): void;
|
65 | sendMessage(message: any): void;
|
66 | startRead(): void;
|
67 | halfClose(): void;
|
68 | setCredentials(credentials: CallCredentials): void;
|
69 | }
|
70 | export declare class InterceptingCall implements InterceptingCallInterface {
|
71 | private nextCall;
|
72 | |
73 |
|
74 |
|
75 | private requester;
|
76 | |
77 |
|
78 |
|
79 |
|
80 | private processingMetadata;
|
81 | |
82 |
|
83 |
|
84 | private pendingMessageContext;
|
85 | private pendingMessage;
|
86 | |
87 |
|
88 |
|
89 |
|
90 | private processingMessage;
|
91 | |
92 |
|
93 |
|
94 |
|
95 | private pendingHalfClose;
|
96 | constructor(nextCall: InterceptingCallInterface, requester?: Requester);
|
97 | cancelWithStatus(status: Status, details: string): void;
|
98 | getPeer(): string;
|
99 | private processPendingMessage;
|
100 | private processPendingHalfClose;
|
101 | start(metadata: Metadata, interceptingListener?: Partial<InterceptingListener>): void;
|
102 | sendMessageWithContext(context: MessageContext, message: any): void;
|
103 | sendMessage(message: any): void;
|
104 | startRead(): void;
|
105 | halfClose(): void;
|
106 | setCredentials(credentials: CallCredentials): void;
|
107 | }
|
108 | export interface NextCall {
|
109 | (options: InterceptorOptions): InterceptingCallInterface;
|
110 | }
|
111 | export interface Interceptor {
|
112 | (options: InterceptorOptions, nextCall: NextCall): InterceptingCall;
|
113 | }
|
114 | export interface InterceptorProvider {
|
115 | (methodDefinition: ClientMethodDefinition<any, any>): Interceptor;
|
116 | }
|
117 | export interface InterceptorArguments {
|
118 | clientInterceptors: Interceptor[];
|
119 | clientInterceptorProviders: InterceptorProvider[];
|
120 | callInterceptors: Interceptor[];
|
121 | callInterceptorProviders: InterceptorProvider[];
|
122 | }
|
123 | export declare function getInterceptingCall(interceptorArgs: InterceptorArguments, methodDefinition: ClientMethodDefinition<any, any>, options: CallOptions, channel: Channel): InterceptingCallInterface;
|