import { AppearanceEnum, AuthenticateToken, LangEnum } from '../../domain/contracts';
type Setup = (auth: AuthenticateToken) => ValidateUserMiddlewareUseCase;
type Input = {
    token: string;
    domain: string;
    roles?: string[];
};
type Output = {
    email_verified: boolean;
    name: string;
    preferred_username: string;
    given_name: string;
    family_name: string;
    email: string;
    tenant: string;
    tenantId: string;
    lang: LangEnum;
    appearance: AppearanceEnum;
    roles: [];
};
export type ValidateUserMiddlewareUseCase = (input: Input) => Promise<Output>;
export declare const setupValidateUserMiddlewareUseCase: Setup;
export {};
