import { type Ref, EntitySchema } from '@mikro-orm/core';
import { type IUser, type UserCtor } from './User';
export declare class Email<CustomUser extends IUser<any, any, any>> {
    id: number;
    user: Ref<CustomUser>;
    address: string;
    verified: boolean;
    constructor({ address, user, verified }: EmailCtorArgs<CustomUser>);
}
export interface EmailCtorArgs<CustomUser extends IUser<any, any, any>> {
    address: string;
    user?: CustomUser;
    verified?: boolean;
}
export type EmailCtor<CustomUser extends IUser<any, any, any>, CustomEmailCtorArgs extends EmailCtorArgs<CustomUser> = EmailCtorArgs<CustomUser>> = new (args: CustomEmailCtorArgs) => Email<CustomUser>;
export declare const getEmailCtor: <CustomUser extends IUser<any, any, any>, CustomEmailCtorArgs extends EmailCtorArgs<CustomUser> = EmailCtorArgs<CustomUser>>({ abstract, }?: {
    abstract?: boolean | undefined;
}) => EmailCtor<CustomUser, CustomEmailCtorArgs>;
export declare const getEmailSchema: ({ UserEntity, abstract, }?: {
    UserEntity?: UserCtor<any, any, any, any> | undefined;
    abstract?: boolean | undefined;
}) => EntitySchema<Email<any>, never>;
