import * as plugins from '../plugins.js';
import * as authInterfaces from '../data/auth.js';
export type TAdminLoginAuthSource = 'auto' | 'local' | 'idp.global';
export interface IAdminUserProjection {
    id: string;
    username: string;
    email?: string;
    name?: string;
    role: string;
    status?: 'active' | 'disabled';
    authSources?: Array<'local' | 'idp.global'>;
}
export interface IReq_AdminLoginWithUsernameAndPassword extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_AdminLoginWithUsernameAndPassword> {
    method: 'adminLoginWithUsernameAndPassword';
    request: {
        username: string;
        password: string;
        authSource?: TAdminLoginAuthSource;
    };
    response: {
        identity?: authInterfaces.IIdentity;
    };
}
export interface IReq_GetAdminBootstrapStatus extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_GetAdminBootstrapStatus> {
    method: 'getAdminBootstrapStatus';
    request: {};
    response: {
        dbEnabled: boolean;
        dbReady: boolean;
        hasPersistentAdmin: boolean;
        needsBootstrap: boolean;
        ephemeralAdminAvailable: boolean;
        idpGlobalConfigured: boolean;
    };
}
export interface IReq_CreateInitialAdminUser extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_CreateInitialAdminUser> {
    method: 'createInitialAdminUser';
    request: {
        identity: authInterfaces.IIdentity;
        email: string;
        name?: string;
        password: string;
        enableIdpGlobalAuth?: boolean;
    };
    response: {
        success: boolean;
        identity?: authInterfaces.IIdentity;
        user?: IAdminUserProjection;
    };
}
export interface IReq_AdminLogout extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_AdminLogout> {
    method: 'adminLogout';
    request: {
        identity: authInterfaces.IIdentity;
    };
    response: {
        success: boolean;
    };
}
export interface IReq_VerifyIdentity extends plugins.typedrequestInterfaces.implementsTR<plugins.typedrequestInterfaces.ITypedRequest, IReq_VerifyIdentity> {
    method: 'verifyIdentity';
    request: {
        identity: authInterfaces.IIdentity;
    };
    response: {
        valid: boolean;
        identity?: authInterfaces.IIdentity;
    };
}
