import { type CreateOptions, type MaskedEmailState, type Options, type Session } from './schemas.js';
export declare class MaskedEmail {
    private readonly details;
    private readonly session;
    static create(options?: CreateOptions, session?: Session): Promise<MaskedEmail>;
    static create(session: Session): Promise<MaskedEmail>;
    static findById(id: string, session?: Session): Promise<MaskedEmail>;
    static findByEmail(emailAddress: string, session?: Session): Promise<MaskedEmail>;
    static getAllEmails(session: Session): Promise<MaskedEmail[]>;
    static getAllEmails(ids?: string[], session?: Session): Promise<MaskedEmail[]>;
    private constructor();
    get email(): string;
    get id(): string;
    get createdAt(): Date;
    get createdBy(): string;
    get lastMessageAt(): Date | undefined;
    get url(): string | undefined;
    get forDomain(): string;
    get description(): string;
    get state(): MaskedEmailState;
    update(options: Options): Promise<this>;
    delete(): Promise<this>;
    disable(): Promise<this>;
    enable(): Promise<this>;
    permanentlyDelete(): Promise<void>;
}
