import { Raw, type Entities } from '../../../platform.node.js';
import { TLObject } from '../../TL.js';
import { Chat, User } from '../../Advanced/index.js';
import type { Snake } from '../../../Client/index.js';
export declare class PollAnswer extends TLObject {
    pollId: bigint;
    voterChat?: Chat;
    user?: User;
    options: Array<string>;
    constructor({ pollId, voterChat, user, options, }: {
        pollId: bigint;
        voterChat?: Chat;
        user?: User;
        options: Array<string>;
    }, client: Snake);
    static parseUpdate(client: Snake, vote: Raw.UpdateMessagePollVote, chats: Array<Raw.TypeChat>, users: Array<Raw.TypeUser>): PollAnswer;
}
export declare class PollOption extends TLObject {
    text: string;
    chosen: boolean;
    correct: boolean;
    voters: number;
    option: string;
    entities: Array<Entities>;
    constructor({ text, chosen, correct, voters, option, entities, }: {
        text: string;
        chosen: boolean;
        correct: boolean;
        voters: number;
        option: string;
        entities: Array<Entities>;
    }, client: Snake);
}
export declare class Poll extends TLObject {
    id: bigint;
    closed: boolean;
    publicVoters: boolean;
    multipleChoice: boolean;
    quiz: boolean;
    question: string;
    questionEntities?: Array<Entities>;
    options: Array<PollOption | undefined>;
    min: boolean;
    totalVoters: number;
    recentVoters: any;
    closePeriod?: number;
    closeDate?: Date;
    solution?: string;
    solutionEntities?: Array<Entities>;
    constructor({ id, closed, publicVoters, multipleChoice, quiz, question, questionEntities, options, closePeriod, closeDate, min, totalVoters, recentVoters, solution, solutionEntities, }: {
        id: bigint;
        closed: boolean;
        publicVoters: boolean;
        multipleChoice: boolean;
        quiz: boolean;
        question: string;
        questionEntities: Array<Entities>;
        options: Array<PollOption | undefined>;
        min: boolean;
        totalVoters: number;
        recentVoters: any;
        closePeriod?: number;
        closeDate?: Date;
        solution?: string;
        solutionEntities?: Array<Entities>;
    }, client: Snake);
    static parse(client: Snake, poll: Raw.MessageMediaPoll | Raw.UpdateMessagePoll): Poll | undefined;
}
