import type { RESTGetAPIChannelMessagesQuery, RESTPostAPIChannelMessagesThreadsJSONBody } from '../../types';
import type { ValidAnswerId } from '../../api/Routes/channels';
import { type MessageStructure, type ThreadChannelStructure, type UserStructure } from '../../client';
import type { MessageCreateBodyRequest, MessageUpdateBodyRequest } from '../types/write';
import { BaseShorter } from './base';
export declare class MessageShorter extends BaseShorter {
    write(channelId: string, { files, ...body }: MessageCreateBodyRequest): Promise<MessageStructure>;
    edit(messageId: string, channelId: string, { files, ...body }: MessageUpdateBodyRequest): Promise<MessageStructure>;
    crosspost(messageId: string, channelId: string, reason?: string): Promise<MessageStructure>;
    delete(messageId: string, channelId: string, reason?: string): Promise<void>;
    fetch(messageId: string, channelId: string, force?: boolean): Promise<MessageStructure>;
    purge(messages: string[], channelId: string, reason?: string): Promise<void | undefined>;
    thread(channelId: string, messageId: string, options: RESTPostAPIChannelMessagesThreadsJSONBody & {
        reason?: string;
    }): Promise<ThreadChannelStructure>;
    endPoll(channelId: string, messageId: string): Promise<MessageStructure>;
    getAnswerVoters(channelId: string, messageId: string, answerId: ValidAnswerId): Promise<UserStructure[]>;
    list(channelId: string, fetchOptions: RESTGetAPIChannelMessagesQuery): Promise<MessageStructure[]>;
}
