import { NormalizeConstructor } from '@adonisjs/core/types/common';
import '@akago/vine-lucid';
import { DateTime } from 'luxon';
import '../../../lib/vine_types/vine_attachment.js';
import '../../../lib/vine_types/vine_dateiso.js';
import '../../../lib/vine_types/vine_enum_with_values.js';
import { AKNakedModelClass } from '../../crud/model.js';
export declare const passwordSchema: import("@vinejs/vine").VineString;
export type AKUserModelRow = {
    isAdmin: boolean;
    email: string;
    password: string;
    disabledAt: DateTime | null;
    disabledReason: string | null;
    enabledNotificationsEmail: string[];
    enabledNotificationsWeb: string[];
};
export type AKUserModelClass<M> = M & {
    new (...args: any[]): AKUserModelRow;
};
export declare const AKUserModelMixin: <T extends NormalizeConstructor<AKNakedModelClass>>(superclass: T) => AKUserModelClass<T>;
export declare const AKUserModel: import("@adonisjs/lucid/types/model").LucidModel & {
    excludeFromUpdate: string[];
    secondaryKey: string | string[] | undefined;
    secondaryKeys: string[];
    keys: string[];
} & {
    new (...args: any[]): import("../../crud/model.js").AKIdModelRow;
    primaryKey: string;
    selfAssignPrimaryKey: boolean;
} & (new (...args: any[]) => import("../../crud/model.js").AKAuditableModelRow) & (new (...args: any[]) => AKUserModelRow) & {
    new (...args: any[]): {
        verifyPassword(plainPassword: string): Promise<boolean>;
        validatePassword(plainPassword: string, passwordFieldName?: string): Promise<void>;
    };
    hashPassword<T extends Omit<import("@adonisjs/lucid/types/model").LucidModel, "constructor"> & (new (...args: any[]) => import("@adonisjs/lucid/types/model").LucidRow) & any>(this: T, user: InstanceType<T>): Promise<void>;
    findForAuth<T extends Omit<import("@adonisjs/lucid/types/model").LucidModel, "constructor"> & (new (...args: any[]) => import("@adonisjs/lucid/types/model").LucidRow) & any>(this: T, uids: string[], value: string): Promise<InstanceType<T> | null>;
    verifyCredentials<T extends Omit<import("@adonisjs/lucid/types/model").LucidModel, "constructor"> & (new (...args: any[]) => import("@adonisjs/lucid/types/model").LucidRow) & any>(this: T, uid: string, password: string): Promise<InstanceType<T>>;
};
