import { Snapshot, StreamEvent } from './gen/protocol_pb'; import { FullyReadMarkers_Content } from './gen/payloads_pb'; export type SnapshotCaseType = Snapshot['content']['case']; export type SnapshotValueType = Snapshot['content']['value']; export type PayloadCaseType = StreamEvent['payload']['case']; export type PayloadValueType = StreamEvent['payload']['value']; export type FullyReadMarker = PlainMessage; export type ContentCaseType = Extract['content']['case']; type HasMessageProperties = T extends { $typeName: any; } ? true : false; type IsBuiltInObjectType = T extends Uint8Array ? true : T extends Date ? true : T extends RegExp ? true : T extends Map ? true : T extends Set ? true : T extends Promise ? true : T extends ArrayBuffer ? true : T extends DataView ? true : false; export type PlainMessage = T extends any ? HasMessageProperties extends true ? { [K in keyof T as K extends '$typeName' | '$unknown' ? never : K]: PlainMessage; } : T extends (infer U)[] ? PlainMessage[] : T extends { case: unknown; value: unknown; } ? { [K in keyof T]: K extends 'value' ? PlainMessage : T[K]; } : IsBuiltInObjectType extends true ? T : T extends object ? { [K in keyof T]: PlainMessage; } : T : never; export {}; //# sourceMappingURL=types.d.ts.map