import type { App } from "./app.js";
import type { Collection } from "./collection_model.js";
import { type Field, type GetterFinder, type GetterFunc, type RecordLike, type SetterFinder, type SetterFunc, type DriverValuer, type RecordInterceptor } from "./field.js";
export declare const FieldTypePassword = "password";
export declare class PasswordField implements Field, GetterFinder, SetterFinder, DriverValuer, RecordInterceptor {
    Name: string;
    Id: string;
    System: boolean;
    Hidden: boolean;
    Presentable: boolean;
    Help: string;
    Pattern: string;
    Min: number;
    Max: number;
    Cost: number;
    Required: boolean;
    Type(): string;
    GetId(): string;
    SetId(id: string): void;
    GetName(): string;
    SetName(name: string): void;
    GetSystem(): boolean;
    SetSystem(system: boolean): void;
    GetHidden(): boolean;
    SetHidden(hidden: boolean): void;
    ColumnType(_app: App): string;
    DriverValue(record: RecordLike): [string, Error | null];
    PrepareValue(_record: unknown, raw: unknown): PasswordFieldValue;
    ValidateValue(_ctx: unknown, _app: App, record: RecordLike): Error | null;
    ValidateSettings(_ctx: unknown, _app: App, _collection: Collection): Error | null;
    CanInterceptAction(actionName: string): boolean;
    Intercept(_ctx: unknown, _app: App, record: RecordLike, actionName: string, actionFunc: () => Error | null | Promise<Error | null>): Error | null | Promise<Error | null>;
    FindGetter(key: string): GetterFunc | null;
    FindSetter(key: string): SetterFunc | null;
    private getPasswordValue;
    private setValue;
    SetValueAsync(record: RecordLike, raw: unknown): Promise<void>;
    private createPasswordValue;
    private createPasswordValueAsync;
}
export declare class PasswordFieldValue {
    LastError: Error | null;
    Hash: string;
    Plain: string;
    constructor(plain: string, hash?: string);
    Validate(pass: string): boolean;
    ValidateAsync(pass: string): Promise<boolean>;
}
