import { ResolverResult } from '../../lib/utils.js';
import { AKAuthContext } from './auth_context/auth_context.js';
import { AKAuthConfig } from './config.js';
import { AKUserModel } from './user/user.js';
import { AKUserServiceClass } from './user/user_service.js';
export interface AKAuthUser extends InstanceType<typeof AKUserModel> {
}
export interface AKAuthUserInfered extends AKAuthUser {
}
export type InferAKAuthUser<Config extends AKAuthConfig<AKAuthUserServiceClass, AKAuthUserModel>> = InstanceType<InferAKAuthUserModel<Config>>;
export type AKAuthUserModel = typeof AKUserModel;
export interface AKAuthUserModelInfered extends AKAuthUserModel {
}
export type InferAKAuthUserModel<Config extends AKAuthConfig<AKAuthUserServiceClass, AKAuthUserModel>> = ResolverResult<Config, 'userClass'>;
export interface AKAuthUserServiceClass extends AKUserServiceClass<typeof AKUserModel> {
}
export interface AKAuthUserServiceClassInfered extends AKUserServiceClass<any> {
}
export type InferAKAuthUserServiceClass<Config extends AKAuthConfig<AKAuthUserServiceClass, AKAuthUserModel>> = ResolverResult<Config, 'userServiceClass'>;
export interface AKAuthContextInfered extends AKAuthContext<AKAuthUserInfered extends AKAuthUser ? AKAuthUserInfered : never> {
}
