import { IAccessibleGroup, IAccessibleUser, IPermission, PermissionScope } from '@awhere/interfaces';
export default class Permission implements IPermission {
    private _scope;
    get scope(): IPermission['scope'];
    set scope(v: IPermission['scope']);
    private _groups;
    get groups(): IAccessibleGroup[] | string[];
    set groups(v: IAccessibleGroup[] | string[]);
    private _users;
    get users(): IAccessibleUser[] | string[];
    set users(v: IAccessibleUser[] | string[]);
    constructor(props?: IPermission);
    toJSON(): {
        scope: "internal" | "private" | "public" | PermissionScope | undefined;
        users: string[] | IAccessibleUser[];
        groups: string[] | IAccessibleGroup[];
    };
}
