///
import type IUserAccount from '../types/IUserAccount';
import type IAccount from '../types/IAccount';
import type IConfig from '../types/IConfig';
import { EventEmitter } from 'node:events';
import type { AxiosInstance } from 'axios';
import type EventSource from 'eventsource';
import type Mail from '../utils/Mail';
import Mails from './Mails';
declare interface Account {
addListener(event: 'newMail', listener: (mail: Mail) => void): this;
addListener(event: 'account', listener: (account: IUserAccount) => void): this;
on(event: 'newMail', listener: (mail: Mail) => void): this;
on(event: 'account', listener: (account: IUserAccount) => void): this;
once(event: 'newMail', listener: (mail: Mail) => void): this;
once(event: 'account', listener: (account: IUserAccount) => void): this;
}
declare class Account extends EventEmitter implements IAccount {
mails: Mails;
api: AxiosInstance;
_eventSource: EventSource;
readonly config: IConfig;
readonly id: string;
readonly address: string;
readonly quota: number;
readonly used: number;
readonly isDisabled: boolean;
readonly isDeleted: boolean;
readonly createdAtTimestamp: string;
readonly updatedAtTimestamp: string;
token: string;
readonly password?: string | undefined;
constructor(account: IUserAccount, config?: IConfig);
fetch(): Promise;
delete(): Promise;
prependListener(event: string, listener: (...args: any) => void): this;
prependOnceListener(event: string, listener: (...args: any) => void): this;
get createdAt(): Date;
get updatedAt(): Date;
}
export default Account;