import { Action, Role } from "./action";
export declare type User = {
    username: string;
    roles: Role[];
    permissions: Action[];
    details: {
        firstname: string;
        lastname: string;
        email: string;
        placement: string;
        post: string;
        contact: string;
    };
    islogged: boolean;
};
export declare type Api = {
    login(u: User): User;
    logged(): User;
    name(u: User): string;
    fingerprintOf(u: User): string;
    actionsOf(u: User): Action[];
    allActionsOf(u: User): Action[];
    can(a: Action): boolean;
    canOver(a: Action, resource: string): boolean;
    canAny(...a: Action[]): boolean;
    cannotAny(...a: Action[]): boolean;
    canUser(u: User, a: Action): boolean;
    isLoaded(u: User): boolean;
};
/** static for the logged user, exposed through api below. */
export declare var userlogged: User;
export declare const api: Api;
export default api;
