import { role, mailboxResMessage } from "ecoledirecte-api-types/v3";
import { ExpandedBase64 } from "../classes";
import { Student } from "../accounts";
export declare class Message {
    private _user?;
    /** @description Unique ID */
    id: number;
    /** @description Direction of the message */
    type: "received" | "sent";
    /** @description Whether it is marked as read */
    read: boolean;
    /** @description Has it been transferred? */
    transferred: boolean;
    /** @description Has it been answered? */
    answered: boolean;
    /**
     * @description Degree of implication
     * @enum `to`: the message is directed to the user
     * @enum `cc`: the message is not written for the user, but publicly adressed
     * @enum `cci`: the message is not written for the user and is privately sent
     * @enum ` `: the message isn't received
     */
    to_cc_cci: "to" | "cc" | "cci" | "";
    /** @description Subject, headline of the mail */
    subject: string;
    /** @description When has this message been sent? */
    date: Date;
    /** @description List of the addressees */
    to: Array<{
        id: number;
        fullName: string;
        lastName: string;
        firstName: string;
        particle: string;
        civility: string;
        role: role;
        read: boolean;
        to_cc_cci: "to" | "cc" | "cci";
    }>;
    /** @description Sender */
    from: {
        id: number;
        fullName: string;
        lastName: string;
        firstName: string;
        particle: string;
        civility: string;
        role: role;
        read: boolean;
    };
    /** @description Raw document straight from EcoleDirecte */
    _raw: mailboxResMessage;
    constructor(o: mailboxResMessage, user?: Student);
    /**
     * @description Fetches the content of the mail
     * NEEDS USER
     */
    getContent(): Promise<ExpandedBase64>;
}
