import { AppType, EntityType } from './app.types';
import { ConversationType } from './conversations.types';
import { CommentType } from './comments.types';
import { FileType } from './files.types';
import { PlainObjectType } from './generic.types';
import { MemberType } from './members.types';
import { MessageType } from './messages.types';
import { PostType } from './posts.types';
import { UserType } from './users.types';

export type RealtimeDataType = PlainObjectType | number | string | Array<PlainObjectType | number | string>;
export type RealtimeEventType = {
    id: number;
    action: string;
    actor: UserType;
};
export type RealtimeAppEventType = RealtimeEventType & {
    app: AppType;
};
export type RealtimeMemberEventType = RealtimeEventType & {
    app: AppType;
    member: MemberType;
};
export type RealtimeReactionEventType = RealtimeEventType & {
    reaction: string;
    entity: EntityType;
};
export type RealtimeMessageEventType = RealtimeEventType & {
    message: MessageType;
};
export type RealtimeConversationMarkedEventType = RealtimeEventType & {
    conversation: ConversationType;
    marked_at: string;
    marked_id: number;
};
export type RealtimeConversationDeliveredEventType = RealtimeEventType & {
    conversation: ConversationType;
    delivered_at: string;
};
export type RealtimePostEventType = RealtimeEventType & {
    post: PostType;
};
export type RealtimeCommentEventType = RealtimeEventType & {
    comment: CommentType;
};
export type RealtimeFileEventType = RealtimeEventType & {
    file: FileType;
};
export type RealtimeTypingEventType = RealtimeEventType & {
    entity: EntityType;
    type: EntityType["type"];
};
export type RealtimePresenceEventType = number | number[];
//# sourceMappingURL=realtime.types.d.ts.map