node-groupme
Version:
The only GroupMe API library that isn't a million years old.
47 lines • 1.53 kB
TypeScript
import type { APIChat, APIGroup } from 'groupme-api-types';
import type { Attachment, Client, Message, MessageManager } from '..';
import { Base } from '..';
export declare enum ChannelType {
Chat = "chat",
Group = "group",
FormerGroup = "former_group"
}
declare type MessagePreview = {
id: string | null;
user: UserPreview;
createdAt: number | null;
text: string | null;
attachments: Attachment[];
};
declare type UserPreview = {
nickname: string | null;
image_url: string | null;
};
interface ChannelData {
readonly id: string;
messageCount: number;
lastMessage: MessagePreview;
createdAt: number;
updatedAt: number;
messageDeletionMode?: string[];
messageDeletionPeriod?: number;
}
export default abstract class Channel extends Base implements ChannelData {
abstract readonly type: ChannelType;
messageCount: number;
lastMessage: MessagePreview;
createdAt: number;
updatedAt: number;
messageDeletionMode?: string[];
messageDeletionPeriod?: number;
constructor(client: Client, data: ChannelData);
static _patch(self: Channel, data: Partial<ChannelData>): typeof self;
static dataFromGroup(data: APIGroup): ChannelData;
static dataFromChat(data: APIChat): ChannelData;
}
export interface SendableChannelInterface {
messages: MessageManager<Channel, Message<Channel>, new (...args: any[]) => Message<Channel>>;
send(text: string): Promise<Message<Channel>>;
}
export {};
//# sourceMappingURL=Channel.d.ts.map