import * as plugins from '../../plugins.js';
import type { OpsServer } from '../classes.opsserver.js';
import { PasskeyManager } from '../classes.passkeymanager.js';
import * as interfaces from '../../../dist_ts_interfaces/index.js';
export interface IJwtData {
    userId: string;
    username: string;
    role: 'admin' | 'user';
    status: 'loggedIn' | 'loggedOut';
    authMethod: 'passkey';
    credentialId: string;
    expiresAt: number;
}
export declare class AdminHandler {
    private opsServerRef;
    typedrouter: plugins.typedrequest.TypedRouter<plugins.typedrequestInterfaces.ITypedRequest>;
    smartjwtInstance: plugins.smartjwt.SmartJwt<IJwtData>;
    passkeyManager: PasskeyManager;
    constructor(opsServerRef: OpsServer, optionsArg?: {
        developmentOrigin?: string;
    });
    initialize(): Promise<void>;
    private createIdentityForUser;
    private authError;
    private isAuthError;
    getVerifiedIdentity(identityArg: interfaces.data.IIdentity | null | undefined): Promise<interfaces.data.IIdentity>;
    getVerifiedAdminIdentity(identityArg: interfaces.data.IIdentity | null | undefined): Promise<interfaces.data.IIdentity>;
    private registerHandlers;
    private runPasskeyCeremony;
    private errorMessage;
    validIdentityGuard: plugins.smartguard.Guard<{
        identity: interfaces.data.IIdentity;
    }>;
    adminIdentityGuard: plugins.smartguard.Guard<{
        identity: interfaces.data.IIdentity;
    }>;
}
