import type { ValidAnswerId } from '../api/Routes/channels';
import type { MessageStructure, UserStructure } from '../client/transformers';
import type { UsingClient } from '../commands';
import { type ObjectToLower } from '../common';
import type { APIPoll } from '../types';
import { Base } from './extra/Base';
export interface Poll extends ObjectToLower<APIPoll> {
}
export declare class Poll extends Base {
    readonly channelId: string;
    readonly messageId: string;
    constructor(client: UsingClient, data: APIPoll, channelId: string, messageId: string);
    get expiryTimestamp(): number;
    get expiryAt(): Date;
    end(): Promise<MessageStructure>;
    /**
     * @param id - The ID of the answer whose voters need to be fetched.
     * @param checkAnswer - A flag that determines if the answer ID should be validated before fetching voters.
     *                        Default is `false`. If `true`, the method checks if the answer ID exists in the list
     *                        of answers and throws an error if not.
     */
    getAnswerVoters(id: ValidAnswerId, checkAnswer?: boolean): Promise<UserStructure[]>;
}
