import type { Message as APIMessage } from 'revolt-api'; import { BaseManager } from './BaseManager'; import { Channel, Message, ServerMember, User } from '../structures/index'; import { Collection } from '../util/index'; export declare type MessageResolvable = Message | APIMessage | string; export interface EditMessageOptions { content?: string; } export interface MessageOptions { content: string; replies?: unknown[]; attachments?: string[]; } export interface SearchMessageQuery { query: string; limit?: number; before?: string; after?: string; sort?: 'Relevance' | 'Latest' | 'Oldest'; include_users?: boolean; } declare type SearchResultWithUsers = { users: Collection; messages: Collection; members: Collection; }; export declare class MessageManager extends BaseManager { protected readonly channel: Channel; holds: typeof Message; constructor(channel: Channel); private _fetchId; private _fetchMany; send(_options: MessageOptions | string): Promise; ack(message: MessageResolvable): Promise; delete(message: MessageResolvable): Promise; edit(message: MessageResolvable, options: EditMessageOptions): Promise; search(query: SearchMessageQuery & { include_users: true; }): Promise; search(query: SearchMessageQuery): Promise>; fetch(messageId: string): Promise; fetch(options: { includeUsers: true; }): Promise<{ users: Collection; messages: Collection; }>; fetch(options?: { includeUsers?: false; }): Promise>; } export {};