/// import { Call, StatusObject, WriteObject } from './call-stream'; import { Metadata } from './metadata'; /** * Filter classes represent related per-call logic and state that is primarily * used to modify incoming and outgoing data */ export interface Filter { sendMetadata(metadata: Promise): Promise; receiveMetadata(metadata: Metadata): Metadata; sendMessage(message: Promise): Promise; receiveMessage(message: Promise): Promise; receiveTrailers(status: StatusObject): StatusObject; refresh(): void; } export declare abstract class BaseFilter implements Filter { sendMetadata(metadata: Promise): Promise; receiveMetadata(metadata: Metadata): Metadata; sendMessage(message: Promise): Promise; receiveMessage(message: Promise): Promise; receiveTrailers(status: StatusObject): StatusObject; refresh(): void; } export interface FilterFactory { createFilter(callStream: Call): T; }