stream-chat-react
Version:
React components to create chat conversations or livestream style chat
88 lines (87 loc) • 5.24 kB
TypeScript
import type { Attachment, DefaultGenerics, ExtendableGenerics, OGAttachment } from 'stream-chat';
import type { DefaultStreamChatGenerics } from '../../types/types';
export type AttachmentLoadingState = 'uploading' | 'finished' | 'failed';
export declare enum LinkPreviewState {
/** Link preview has been dismissed using MessageInputContextValue.dismissLinkPreview **/
DISMISSED = "dismissed",
/** Link preview could not be loaded, the enrichment request has failed. **/
FAILED = "failed",
/** Link preview has been successfully loaded. **/
LOADED = "loaded",
/** The enrichment query is in progress for a given link. **/
LOADING = "loading",
/** The link is scheduled for enrichment. **/
QUEUED = "queued"
}
export type LinkURL = string;
export type LinkPreview = OGAttachment & {
state: LinkPreviewState;
};
export declare enum SetLinkPreviewMode {
UPSERT = 0,
SET = 1,
REMOVE = 2
}
export type LinkPreviewMap = Map<LinkURL, LinkPreview>;
export type VoiceRecordingAttachment<StreamChatGenerics extends ExtendableGenerics = DefaultGenerics> = Attachment<StreamChatGenerics> & {
asset_url: string;
type: 'voiceRecording';
duration?: number;
file_size?: number;
mime_type?: string;
title?: string;
waveform_data?: Array<number>;
};
type FileAttachment<StreamChatGenerics extends ExtendableGenerics = DefaultGenerics> = Attachment<StreamChatGenerics> & {
type: 'file';
asset_url?: string;
file_size?: number;
mime_type?: string;
title?: string;
};
export type AudioAttachment<StreamChatGenerics extends ExtendableGenerics = DefaultGenerics> = Attachment<StreamChatGenerics> & {
type: 'audio';
asset_url?: string;
file_size?: number;
mime_type?: string;
title?: string;
};
export type VideoAttachment<StreamChatGenerics extends ExtendableGenerics = DefaultGenerics> = Attachment<StreamChatGenerics> & {
type: 'video';
asset_url?: string;
mime_type?: string;
thumb_url?: string;
title?: string;
};
type ImageAttachment<StreamChatGenerics extends ExtendableGenerics = DefaultGenerics> = Attachment<StreamChatGenerics> & {
type: 'image';
fallback?: string;
image_url?: string;
original_height?: number;
original_width?: number;
};
export type BaseLocalAttachmentMetadata = {
id: string;
};
export type LocalAttachmentUploadMetadata = {
file?: File;
uploadState?: AttachmentLoadingState;
};
export type LocalImageAttachmentUploadMetadata = LocalAttachmentUploadMetadata & {
previewUri?: string;
};
export type LocalAttachmentCast<A, L = Record<string, unknown>> = A & {
localMetadata: L & BaseLocalAttachmentMetadata;
};
export type LocalAttachmentMetadata<CustomLocalMetadata = Record<string, unknown>> = CustomLocalMetadata & BaseLocalAttachmentMetadata & LocalImageAttachmentUploadMetadata;
export type LocalVoiceRecordingAttachment<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, CustomLocalMetadata = Record<string, unknown>> = LocalAttachmentCast<VoiceRecordingAttachment<StreamChatGenerics>, LocalAttachmentUploadMetadata & CustomLocalMetadata>;
export type LocalAudioAttachment<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, CustomLocalMetadata = Record<string, unknown>> = LocalAttachmentCast<AudioAttachment<StreamChatGenerics>, LocalAttachmentUploadMetadata & CustomLocalMetadata>;
export type LocalVideoAttachment<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, CustomLocalMetadata = Record<string, unknown>> = LocalAttachmentCast<VideoAttachment<StreamChatGenerics>, LocalAttachmentUploadMetadata & CustomLocalMetadata>;
export type LocalImageAttachment<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, CustomLocalMetadata = Record<string, unknown>> = LocalAttachmentCast<ImageAttachment<StreamChatGenerics>, LocalImageAttachmentUploadMetadata & CustomLocalMetadata>;
export type LocalFileAttachment<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, CustomLocalMetadata = Record<string, unknown>> = LocalAttachmentCast<FileAttachment<StreamChatGenerics>, LocalAttachmentUploadMetadata & CustomLocalMetadata>;
export type AnyLocalAttachment<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, CustomLocalMetadata = Record<string, unknown>> = LocalAttachmentCast<Attachment<StreamChatGenerics>, LocalAttachmentMetadata<CustomLocalMetadata>>;
export type LocalAttachment<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> = AnyLocalAttachment<StreamChatGenerics> | LocalFileAttachment<StreamChatGenerics> | LocalImageAttachment<StreamChatGenerics> | LocalAudioAttachment<StreamChatGenerics> | LocalVideoAttachment<StreamChatGenerics> | LocalVoiceRecordingAttachment<StreamChatGenerics>;
export type LocalAttachmentToUpload<StreamChatGenerics extends DefaultStreamChatGenerics = DefaultStreamChatGenerics, CustomLocalMetadata = Record<string, unknown>> = Partial<Attachment<StreamChatGenerics>> & {
localMetadata: Partial<BaseLocalAttachmentMetadata> & LocalAttachmentUploadMetadata & CustomLocalMetadata;
};
export {};