import { GenericEventsType } from "./schemaHelpers"; export declare const isDefined: (val: T | null | undefined) => val is T; export type EventFromType = K & { type: T; }; export type ExtractDataFromEvents = Events extends { type: Types; data: infer Data; } ? ObjectWithOnlyStringOrNumberValues : never; export type UnionToIntersection = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never; export type DataForEventTypes = UnionToIntersection>; type ExtractEventData = Event extends { type: Type; data: infer Data; } ? Data : never; type IntersectEventData = UnionToIntersection>; export type StreamOptionsForEvents = { eventTypes: Type[]; options?: { data?: Partial>>; after?: string; }; }; type KeysWithNumericValues = { [key in keyof T]: T[key] extends number | undefined ? key : never; }[keyof T]; type KeysWithStringValues = { [key in keyof T]: T[key] extends string | undefined ? key : never; }[keyof T]; type ObjectWithOnlyNumericValues = { [key in KeysWithNumericValues]: number; }; type ObjectWithOnlyStringValues = { [key in KeysWithStringValues]: string; }; type ObjectWithOnlyNumericArrayValues = { [key in KeysWithNumericValues]: number[]; }; type ObjectWithOnlyStringArrayValues = { [key in KeysWithStringValues]: string[]; }; export type ObjectWithOnlyStringOrNumberValues = ObjectWithOnlyNumericValues & ObjectWithOnlyStringValues; export type ObjectWithOnlyStringOrNumberArrayValues = ObjectWithOnlyNumericArrayValues & ObjectWithOnlyStringArrayValues; export type ObjectWithOnlyStringOrNumberValuesOrArrayValues = ObjectWithOnlyStringOrNumberValues | ObjectWithOnlyStringOrNumberArrayValues; export {};