1 | import { HttpRequest } from "./http";
|
2 | import { FinalizeHandler, FinalizeHandlerArguments, FinalizeHandlerOutput, HandlerExecutionContext } from "./middleware";
|
3 | import { MetadataBearer } from "./response";
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 | export interface Message {
|
10 | headers: MessageHeaders;
|
11 | body: Uint8Array;
|
12 | }
|
13 | export interface MessageHeaders {
|
14 | [name: string]: MessageHeaderValue;
|
15 | }
|
16 | export interface BooleanHeaderValue {
|
17 | type: "boolean";
|
18 | value: boolean;
|
19 | }
|
20 | export interface ByteHeaderValue {
|
21 | type: "byte";
|
22 | value: number;
|
23 | }
|
24 | export interface ShortHeaderValue {
|
25 | type: "short";
|
26 | value: number;
|
27 | }
|
28 | export interface IntegerHeaderValue {
|
29 | type: "integer";
|
30 | value: number;
|
31 | }
|
32 | export interface LongHeaderValue {
|
33 | type: "long";
|
34 | value: Int64;
|
35 | }
|
36 | export interface BinaryHeaderValue {
|
37 | type: "binary";
|
38 | value: Uint8Array;
|
39 | }
|
40 | export interface StringHeaderValue {
|
41 | type: "string";
|
42 | value: string;
|
43 | }
|
44 | export interface TimestampHeaderValue {
|
45 | type: "timestamp";
|
46 | value: Date;
|
47 | }
|
48 | export interface UuidHeaderValue {
|
49 | type: "uuid";
|
50 | value: string;
|
51 | }
|
52 | export declare type MessageHeaderValue = BooleanHeaderValue | ByteHeaderValue | ShortHeaderValue | IntegerHeaderValue | LongHeaderValue | BinaryHeaderValue | StringHeaderValue | TimestampHeaderValue | UuidHeaderValue;
|
53 | export interface Int64 {
|
54 | readonly bytes: Uint8Array;
|
55 | valueOf: () => number;
|
56 | toString: () => string;
|
57 | }
|
58 |
|
59 |
|
60 |
|
61 | export interface EventStreamSerdeContext {
|
62 | eventStreamMarshaller: EventStreamMarshaller;
|
63 | }
|
64 | export interface EventStreamMarshaller {
|
65 | deserialize: (body: any, deserializer: (input: {
|
66 | [event: string]: Message;
|
67 | }) => any) => AsyncIterable<any>;
|
68 | serialize: (input: AsyncIterable<any>, serializer: (event: any) => Message) => any;
|
69 | }
|
70 | export interface EventStreamRequestSigner {
|
71 | sign(request: HttpRequest): Promise<HttpRequest>;
|
72 | }
|
73 | export interface EventStreamPayloadHandler {
|
74 | handle: <Input extends object, Output extends MetadataBearer>(next: FinalizeHandler<Input, Output>, args: FinalizeHandlerArguments<Input>, context?: HandlerExecutionContext) => Promise<FinalizeHandlerOutput<Output>>;
|
75 | }
|
76 | export interface EventStreamPayloadHandlerProvider {
|
77 | (options: any): EventStreamPayloadHandler;
|
78 | }
|
79 | export interface EventStreamSerdeProvider {
|
80 | (options: any): EventStreamMarshaller;
|
81 | }
|
82 | export interface EventStreamSignerProvider {
|
83 | (options: any): EventStreamRequestSigner;
|
84 | }
|