import { RoleModel } from '../model'; import { AppDomain } from '../type'; import { AuthToken, BaseIdToken, Rule } from './auth-type'; export type RoleMetadata = { models: Record; attributes?: { [x: string]: any; roleOrgId?: number; roleOrgCode?: string; roleOrgType?: string; roleType?: string; }; }; export type VerifyIdToken = BaseIdToken & { rules?: Rule[]; rolesMetadata?: RoleMetadata[]; mfaVerified?: boolean; }; export declare const schemaVerifyIdToken: { rules: import("joi").ArraySchema; rolesMetadata: import("joi").ArraySchema; mfaVerified: import("joi").BooleanSchema; userId: import("joi").NumberSchema; userLogin: import("joi").StringSchema; localeCode: import("joi").StringSchema; orgId: import("joi").NumberSchema; appDomain: import("joi").StringSchema; productId: import("joi").NumberSchema; extended: import("joi").ObjectSchema; }; export type BearerMetadata = { orgId: number; appDomain: AppDomain; productId: number; roleType?: string; hasAbility?: Rule; }; export type AuthBearerVerify = (authToken: AuthToken, metadata: BearerMetadata) => Promise; export type BasicMetadata = { username: string; password: string; orgId: number; appDomain: AppDomain; productId: number; roleType?: string; hasAbility?: Rule; }; export type AuthBasicVerify = (metadata: BasicMetadata) => Promise;