import { PermissionValidator } from '@declaro/core';
import type { IAuthSession } from '../../domain/models/auth-session';
import type { AuthService } from '../../domain/services/auth-service';
export type Permission = string | PermissionValidator;
export type PermissionValidationFn = (v: PermissionValidator) => any;
export interface IInstanceWithAuthValidator {
    authValidator: AuthValidator;
}
export declare class AuthValidator {
    protected readonly authSession: IAuthSession | null;
    protected readonly authService: AuthService;
    constructor(authSession: IAuthSession | null, authService: AuthService);
    static createFromClass(classInstance: IInstanceWithAuthValidator): AuthValidator;
    getAuthSession(): IAuthSession | null;
    validateSession(strict?: boolean): boolean;
    validatePermissions(validate: PermissionValidationFn, strict?: boolean): boolean;
}
